53 Node.js => [ 大事件]

    科技2026-01-28  9

    1. 注册的业务

    1.1 前端的场景
    1. 我们是使用layui的框架自带的表单校验, 让我们输入的用户名和密码有效,减少http无效请求的次数,必须做的优化 2. 使用jquery的ajax函数,发起请求; 将我们的 用户名和密码 两个参数传递给后端 $.post('/api/reguser', data, function(res) { if (res.status !== 0) { return layer.msg(res.message) } layer.msg('注册成功,请登录!') // 模拟人的点击行为 $('#link_login').click() })
    1.2 后端的场景
    1.检测表单数据是否合法 if(username && password) 2.检测用户名是否被占用 使用sql语句 select * from ev_users where username=? 3.对密码进行加密处理 bcryptjs 4.插入新用户 insert into ev_users set ?

    2. 登录的业务

    2.1 前端
    输入用户名和密码,发起登录请求。 服务器返回一个token值; 前端把它储存在localStorage里面; 然后再所有请求的请求头里面 Authorization:localStorage.getItem('token'); 这样每一个请求都会携带一个身份
    2.2后端
    1.检测表单数据是否合法 2.根据用户名查询用户的数据 3.判断用户输入的密码是否正确 4.生成 JWT 的 Token 字符串

    3. 项目中使用的第三方包

    1. mysql ---- 在nodejs代码里面,链接外部数据库使用的一个js包 2. bcryptjs ----- 这个包是 对密码进行加密的包, 不可以逆解析, 数据库储存的都是密文, 不是明文 3. @hapi/joi ----- 这个包就是 对前端用户传递过来的值 进行 校验的库, 不需要自己写一些if...else 4. jsonwebtoken ---- 这个包是生成 token值的一个包, 主要做身份认证使用 5. express-jwt ---- 这个就是将用户传递过来的token值 逆解析出来使用 我们在使用npm i xxx安装的时候,就是安装的上面这个 有具体功能的包

    面试的一些问题?

    你们之前表单校验是怎么处理的? 我以前使用过layui框架,里面自带的有form验证。 我还自己写过一些nodejs的demo的程序, 使用过joi这个第三方包进行数据的校验;

    joi.number().integer().min(1).required() joi.string().required() joi.string().email().required()
    Processed: 0.038, SQL: 9