添加用户和修改用户共用一个模板,只是根据请求参数的不同,来渲染不同的数据
添加用户
- 为用户列表页面的新增用户按钮添加链接
- 添加一个对应的路由,在路由处理函数中渲染新增用户模板
- 为新增用户表单指定请求地址、请求方式,微表单添加name属性
- 增加实现添加用户的功能路由
- 接收到客户端传递过来的请求参数
- 对请求参数的格式进行验证
- 验证当前要注册的邮箱地址是否已经注册过了
- 对密码进行加密处理
- 将用户信息添加到数据库中
10.重定向到用户列表页面
编辑用户
- 将要修改的用户ID传递到服务器
- 建立用户信息修改功能对应的路由
- 接收客户端表单传递过来的请求参数
- 根据id查询用户信息,并将客户端传递过来的密码和数据库中的密码进行比对,如果比对失败,对客户端做出响应。如果成功,将用户信息更新到数据库中。
代码部分
route/admin/user-edit.js
:
const { User } = require('../../model/user')
module.exports = async(req, res) => {
// 标识,表示当前访问的是用户管理页面
req.app.locals.currentLink = 'user'
// 获取到地址栏中的id 参数
const { message, id } = req.query
// 如果当前传递了id参数
if (id) {
// 修改操作
let user = await User.findOne({ _id: id })
// 渲染用户修改页面
res.render('admin/user-edit', {
message: message,
user: user,
link: '/admin/user-modify?id=' + id,
button: '修改'
})
} else {
// 添加操作
res.render('admin/user-edit', {
message: message,
link: '/admin/user-edit',
button: '添加'
})
}
}
views/admin/user-edit.art
: