(5)项目功能实现的用户信息修改用户修改和添加用户类似,不同的是id会返回到编辑页面,显示用户的IdBLOG--源码目录└──model--数据库操作├──public--静态资源└──route--路由└──admin--博客管理├──user-modify.js--用户修改功能路由└──user-edit.js--用户编辑功能路由└──admin。js--博客管理页面路由└──views--模板└──admin--博客管理页面美工模板├──user-edit.art--用户编辑页面└──user.art--用户列表页面└──app.js--创建网站服务user.art在地址栏赋id参数,区分添加和修改/admin/user-edit?id={{@$value._id}}···
{{每个用户}}{{@$value._id}} | {{$value.username}} | {{$value.电子邮件}}}}/td> | {{$value.role=='admin'?'超级管理员':'普通用户'}} | {{$value.state==0?'启用':'禁用'}} | <ahref="/admin/user-edit?id={{@$value._id}}"class="glyphiconglyphicon-edit"> |
{{/each}}···user-edit.js获取地址栏中的id参数,如果存在则修改操作引入用户的集合构造函数,根据findOne查找用户,将用户的信息渲染到用户的edit中页面区分表单的提交地址,添加修改不同的Links,按钮也是const{User}=require('../../model/user');module.exports=async(req,res)=>{//获取地址栏中的id参数const{message,id}=req.query;//如果当前传递的是id参数if(id){//修改操作letuser=awaitUser.findOne({_id:id});//渲染用户编辑页面(修改)res.render('admin/user-edit',{message:message,user:user,link:'/admin/user-modify?id='+id,按钮:“修改”});}else{//添加操作res.render('admin/user-edit',{message:message,link:'/admin/user-edit',button:'add'});}}user-edit.art将用户名的值添加到user.username。如果是添加操作,会因为没有渲染user而报错,所以利用user&&user.username的短路特性来避免报错。对于邮箱,角色,状态,类似操作加值,区分表单的提交地址,添加修改不同的Links,按钮也是为分类标题的Id。也用来区分是否根据Button显示用户id{{extend'./common/layout.art'}}{{block'main'}}{{include'./common/header.art'}}
{{include'./common/aside.art'}}{{@user&&user._id}}{{message}}