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

时间:2015-08-11 12:59:43

标签: node.js express mean-stack

以下是代码:

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方法的回调,我不明白的是,为什么删除req.user也会删除MongoDB中的特定用户,因为它只是一个请求。

编辑:

我有另一个回调(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模型。

1 个答案:

答案 0 :(得分:1)

在您执行req.user = user的情况下,您需要将req.user的值设置为您的mongodb模型的实例。

因此,调用req.user.remove实际上是在调用你的mongodb模型remove函数。

将删除功能更改为:

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

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