• 后端——面试题-注册、登录、数据库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是一个对象

  • 相关阅读:
    Elastic认证考试过程(2022.11.13 06:15)
    隧道代理 vs 普通代理:哪种更适合您的爬虫应用?
    量化策略研究:股票中的偏度效应
    PPP协议和HDLC协议
    预测:2024 年将是互联网永远改变的一年。
    高通WLAN框架学习(31)-- Power save
    HTML学生中秋节日网页设计模板 DIV布局大学生中秋节网页作业制作 八月十五中秋静态网页成品代码下载 中秋节日网页设计作品
    全光谱台灯对孩子眼睛好吗有辐射吗?普通台灯和LED灯哪个辐射大
    博途1200PLC轴控功能块(脉冲轴)
    关于数字化转型的know how
  • 原文地址:https://blog.csdn.net/qq_52301431/article/details/126238640