• 后端——面试题-注册、登录、数据库egg-mysql、svg验证码、服务层Service


    目录

    一、注册

    二、登录

    三、数据库egg-mysql

    1.下载==>小黑窗输入指令

    2.开启插件

    3.配置数据库

    4.使用方式:

    四、验证码

    五、服务层Service

    六、注意点:


    一、注册

    面试题:

    你的xx项目中的注册的流程讲一讲:

            注册的前端

            1.前端表单验证-减轻服务器的负载-DOM操作写特效

                1.1 邮箱验证:绑定change事件 判断value是否符合邮箱正则

                1.2 密码验证:密码要符合格式(自己定制的比如大小写特殊符号),两次密码要一致

                1.3 昵称验证:昵称要符合格式(自己定制的比如大小写特殊符号)

                1.4 身份证的验证:(分前端和后端的验证)图片的格式和大小清晰度-预览

            2.点击提交按钮时 获取用户交互的信息

            3.把数据POST发送给后端

            4.等后端返回数据

                如果返回的数据包的业务码是xxx  就操作页面xxx

                如果返回的数据包的业务码是正确 就跳转到登录页面或者直接帮用户登录

    二、登录

    面试题:

    你的xx项目中的登录的流程讲一讲:

               登录的前端

                1.前端表单验证-减轻服务器的负载-DOM操作写特效

                    1.1 邮箱验证:绑定change事件 判断value是否符合邮箱正则

                    1.2 密码验证:密码要符合格式(自己定制的比如大小写特殊符号),两次密码要一致

                2.POST暗文把密码发送给后端--还有一种技术:JWT

                3.等后端返回数据

                    如果返回的数据包的业务码是xxx  就操作页面xxx

                    如果返回的数据包的业务码是正确 就跳转到首页页面或者其他页面

                4.验证码:

                    前端页面渲染就请求验证码==>后端生成验证码然后设置到缓存 在把验证码发送前端

                    前端获取用户输入的验证码发送给后端==>取出缓存和接受到的 对比

               

    三、数据库egg-mysql

    可以在官网搜:egg - 为企业级框架和应用而生 - Egg

    搜egg-mysql

    框架提供了 egg-mysql 插件来访问 MySQL 数据库。 安装与配置

    1.下载==>小黑窗输入指令

    npm i --save egg-mysql   或者 npm i egg-mysql

    2.开启插件

    // config/plugin.js
    
    1. module.exports = {
    2.  mysql: {
    3.    enable: true,
    4.    package: "egg-mysql"
    5. }
    6. };

    3.配置数据库

    config/config.default.js
    
    1. config.mysql={
    2.    client:{
    3.      host:"localhost", //host 这里填‘localhost’ 或者“192.0.0.1”
    4.      port:"3306",      //端口
    5.      user:"root",      //用户名
    6.      password:"root",   //密码
    7.      database:"h2112"   //数据库名
    8.   }
    9. }

    4.使用方式:

    1.  async getuserinfo(){
    2.    var data1 = await this.app.mysql.query("select *from studentinfo")
    3.    this.ctx.body=data1
    4. }

    四、svg验证码

    也可以在官网看手册如何使用:

    svg-captcha - npm

    实现验证码使用svg-captcha第三方模块

    1.下载
    cnpm i --save svg-captcha
    也可以写:   npm i svg-captcha

    2.导入生成验证码

    1. //Service文件:或者 controller下的user.js中
    2. 'use strict';
    3. const Service = require('egg').Service;
    4. const svgCaptcha = require('svg-captcha'); //核心==>引入
    5. class ToolsService extends Service {
    6.     // 产生验证码
    7.     async captcha() {
    8.         const captcha = svgCaptcha.create({ //核心==>设置验证码的样式
    9.             size: 4, //随机字符串的个数
    10.             fontSize: 50,
    11.             width: 100,
    12.             height: 40,
    13.             background: '#cc9966'
    14.         });
    15.         this.ctx.session.code = captcha.text;//缓存验证码中的文字
    16.         return captcha;//返回验证码
    17.     }
    18. }
    19. module.exports = ToolsService;
    20. //控制器文件:
    21.     async coder() {
    22.         const {ctx} = this;
    23.         let captcha = await this.service.tools.captcha(); // Service里面的方法
    24.         ctx.body = captcha.data; // 返回一张svg图片
    25.     }

    五、服务层Service

    在 Controller 中可以调用任何一个 Service 上的任何方法,同时 Service 是懒加载的,只有当访问到它的时候框架才会去实例化它。

    调用 service 进行业务处理

    const res = await this.ctx.service.user.setinfo(req);   //setinfo是一个工具函数

    六、注意点:

    1、

    let email="123@qq.com"

    let sql=`insert****,"${email}"`  //这一行的email不包括双引号,仅仅取到了123@qq.com,所以这里要加引号

    2、

    let re=await this.app.mysql.query(sql)  //把我自己写的sql语句插入到数据库,re是一个对象

  • 相关阅读:
    A Close Look into the Calibration of Pre-trained Language Models
    A40I工控主板(SBC-X40I)CAN接口测试
    如何在裸机上完成Ubuntu20.0系统的安装
    实用笔记-java配置
    小满nestjs(第十六章 nestjs 响应拦截器)
    大数据——Hive SQL优化
    ThreadLocal
    陪诊小程序:温暖您的就医之路,让关怀触手可及
    ③【操作表数据】MySQL添加数据、修改数据、删除数据
    【slowfast 损失函数改进】深度学习网络通用改进方案:slowfast的损失函数(使用focal loss解决不平衡数据)改进
  • 原文地址:https://blog.csdn.net/qq_52301431/article/details/126238640