Node js POST 请求错误 Errorcode: 'ERR_HTTP_HEADERS_SENT' 当我用邮递员发送请求时

Node js POST Request error Errorcode: 'ERR_HTTP_HEADERS_SENT' when I send my request with postman

我不明白为什么创建对象的请求不再有效。我使用 mysql 和 sequelize 创建模型。

我为每个请求填写用户令牌,进行连接,检索他的个人资料,从数据库中检索所有文章并且它有效,但现在我无法创建更多文章。

我执行了 console.log(req.body) 我的功能,但我有这个:{}。我的函数给了我第一个 condition.When 的 400 错误我发送了我的请求,在 VSC 上我有“代码:'ERR_HTTP_HEADERS_SENT'”。

我检查了应该匹配续集模式的字符数,很好。我填了postman, title, description 和userId这3个字段。

//*******Creating an article*******//
exports.createArticle = (req, res, next) => {
  //Nous allons renvoyer 2 paramêtre //
  const title = req.body.title;
  const description = req.body.description;

  console.log(req.body);
  // Fields must not be empty before sending //
  if (title == null || description == null) {
    res.status(400).json({ message: "content can not empty" });
  }
  console.log(req.body);
  //***Build the request body****/
  const article = Article.build({
    title: req.body.title,
    description: req.body.description,
    userId: req.userId,
  });
  console.log(article);

  //***Save new article***//
  article
    .save()
    .then(() => res.status(201).json({ article }))
    .catch((error) => res.status(400).json({ error }));
};

即使在返回 { message: "content can not empty" } 之后,如果您没有提供标题或描述,您的代码仍在继续执行并发送另一个响应。 请按照以下代码修改您的代码

exports.createArticle = (req, res, next) => {
  //Nous allons renvoyer 2 paramêtre //
  const title = req.body.title;
  const description = req.body.description;

  console.log(req.body);
  // Fields must not be empty before sending //
  if (title == null || description == null) {
    res.status(400).json({ message: "content can not empty" });
    return;
  }
  console.log(req.body);
  //***Build the request body****/
  const article = Article.build({
    title: req.body.title,
    description: req.body.description,
    userId: req.userId,
  });
  console.log(article);

  //***Save new article***//
  article
    .save()
    .then(() => res.status(201).json({ article }))
    .catch((error) => res.status(400).json({ error }));
};