条数据,那么同理,查看用户详情的实现也是如此,只是渲染你到另外一个模板而已,这里就不重复写了;userModel.findById() 查询到 data 对象,该对象也属于 Entity,有 save() 操作。req.body.username 就可以获取到我们修改后的 username,修改 data 对象之后调用 save() 方法保存到数据库中。接下来看看如何删除用户吧。
删除用户
在用户列表中,点击删除按钮,就把该用户从数据库中给删除了,不需要视图,那直接写路由吧。
router.delete('/del', function (req, res) {
var id = req.query.id;
userModel.remove({_id: id}, function (err, data) {
if(err){ return console.log(err); }
res.json({code: 200, msg: '删除成功'});
})
})
点击按钮,发送删除的请求,那我们可以使用 ajax 来实现。在用户列表页面引入 jquery,方便我们操作。然后添加 ajax 请求
$('.del').on('click',function(){
var id = $(this).data('id');
$.ajax({
url: '/users/del?id='+id,
type: 'delete',
success: function (res) { console.log(res); }
})
})
重启服务器,进入 users/list,点击删除按钮,如果看到控制台中已经打印了 {code: 200, msg: '删除成功'} ,表示已经成功删除了,这时我们刷新页面,看看列表中确实已经不存在该用户了。
代码地址: express-demo
总结
通过对用户的增删查改,学习如何写路由已经如何操作数据库。我们来总结一下:
- 定义 Schema,由 Schema 发布 Model 来操作数据库。
- Model 创建的实体 Entity,可以调用 save() 方法将数据保存到数据库中。
- Model.find() 方法查询到该 Schema 下的所有数据,findOne() 根据条件查询数据,findById() 根据 id 查询数据。
- Model.remove() 删除数据。