保存到db后节点重定向

时间:2017-03-06 18:42:24

标签: node.js express

我正在做一个节点应用,它有一个html表单,对/users执行操作 此网址在帖子

上调用此方法
  exports.create = function(req, res, next) {
  const user = new User(req.body);

  user.save((err) => {
    if (err) {
      return next(err);
    } else {
      res.status(302).json(user).redirect('/chat');
    }
  });

};

但是,在我的数据库中存储数据后,我无法进行重定向,并收到错误Can't set headers after they are sent.

我已尝试将重定向放置在表单中的不同位置,但我不断收到同样的错误。

1 个答案:

答案 0 :(得分:2)

尝试从.json(user)删除redirect。您不能同时发送JSON和重定向。

或者如果您想发送JSON,可能是对Ajax请求的响应,请不要发送.status(302),而是在客户端JavaScript上进行重定向。