signed

QiShunwang

“诚信为本、客户至上”

黑马博客——详细步骤(三)项目功能的实现之新增用户

2020/12/29 6:30:50   来源:

2.2新增用户

1. 为用户列表页面的新增用户按钮添加链接

 

 

2. 添加一个连接对应的路由,在路由处理函数中渲染新增用户模板

 

3 .为新增用户表单指定请求地址、请求方式、为表单项添加name属性

 

4. 增加实现添加用户的功能路由

登录后点击新增用户→提交

 

5. 接收到客户端传递过来的请求参数

6. 对请求参数的格式进行验证

使用第三方模块Joi

Joi

JavaScript对象的规则描述语言和验证器。

报错信息:TypeError: Joi.Validate is not a function

解决方式:https://www.cnblogs.com/aimilu/p/13455783.html

 

user-edit-fn.js:

//引入joi模块

const e = require('express');

const Joi = require('joi');



module.exports = async(req, res) => {

    //定义对象的验证规则

    const schema = {

        username: Joi.string().min(2).max(12).required().error(new Error('用户名不符合验证规则')),

        email: Joi.string().email().required().error(new Error('用户名不符合验证规则')),

        password: Joi.string().regex(/^[a-zA-Z0-9

]{3,30}$/).required().error(new Error('密码格式不符合要求')),

        role: Joi.string().valid('normal', 'admin').required().error(new Error('角色值非法')),

        state: Joi.number().valid(0, 1).required().error(new Error('状态值非法'))



    };

    try {

        //实施验证

        await Joi.validate(req.body, schema);

    } catch (e) {

        //验证没有通过

        // e.message

        //重定向回用户添加页面

        res.redirect('/admin/user-edit?message=${e.message}');



    }

    res.send(req.body);

}

7. 验证当前要注册的邮箱地址是否已经注册过

8. 对密码进行加密处理

9. 将用户信息添加到数据库中

 

10. 重定向页面到用户列表页面

 

优化代码:

(1)将验证代码从路由模块抽离到model的用户模块

验证网页功能是否正常运行

(2)优化验证错误重定向代码

优化:

验证网页功能是否正常运行

 

11.将用户信息展示在页面当中:

成功登录后

(下面*操作只是为了方便查看数据,可以不弄)

***********************************************************************************

输入chrome://flags/#extensions-on-chrome-urls

重新打开谷歌浏览器

把json formatter.crx文件拖动进去即可安装插件

 

***********************************************************************************

(上面*操作只是为了方便查看数据,可以不弄)