Node.js / Express.js从请求中删除用户,将其从数据库中删除

这里是代码:

exports.delete = function (req, res, next) { console.log(req.user); req.user.remove(function (err) { if(err) { return next(err); } else { res.json(req.user); } }) }; 

当然这个函数是delete方法的callback,我不明白的是为什么移除req.user也从MongoDB中删除特定的用户,因为它只是一个请求。

编辑:

我有另一个callback(GET)是在相同的路线上执行:

 exports.userByID = function (req, res, next, id) { User.findOne({ _id: id }, function (err, user) { if (err) { return next(err); } else { req.user = user; next(); } }); }; 

用户是MongoDB模型。

在你做req.user = user地方,你可以将req.user = user的值设置为你的mongodb模型的实例。

所以,调用req.user.remove实际上是调用你的mongodb模型的remove函数。

将您的删除function更改为:

 exports.delete = function (req, res, next) { console.log(req.user); delete req.user //etc... }; 

delete req.user将从您的请求对象中删除用户对象