Node.js 如何摆脱;Can';t在发送标题后设置标题。”;错误

Node.js 如何摆脱;Can';t在发送标题后设置标题。”;错误,node.js,express,mongoose,Node.js,Express,Mongoose,我正在为我的项目创建一个小API,但在获取保存在MongoDB数据库中的文档时遇到了问题 postRouter.get('/get/:skip/:limit', (req, res) => { const {skip, limit} = req.params; const query = Post.find().skip(skip).limit(limit).sort('-date'); query.exec((err, docs) => { if (err)

我正在为我的项目创建一个小API,但在获取保存在MongoDB数据库中的文档时遇到了问题

postRouter.get('/get/:skip/:limit', (req, res) => {
  const {skip, limit} = req.params;
  const query = Post.find().skip(skip).limit(limit).sort('-date');

  query.exec((err, docs) => {
    if (err) {
      res.send({error: 'Something went wrong'});
    }
    res.json(docs);
  });
});
每次我发出GET请求时,我都会得到“发送后无法设置头”。如何修复代码?

执行res.send()后,您需要确保这是最后发送给客户端的内容

postRouter.get('/get/:skip/:limit', (req, res) => {
  const {skip, limit} = req.params;
  const query = Post.find().skip(skip).limit(limit).sort('-date');

  query.exec((err, docs) => {
    if (err) {
      return res.send({error: 'Something went wrong'});
    }
    res.json(docs);
  });
});

在执行res.send()之后,您需要确保这是最后发送给客户端的内容

postRouter.get('/get/:skip/:limit', (req, res) => {
  const {skip, limit} = req.params;
  const query = Post.find().skip(skip).limit(limit).sort('-date');

  query.exec((err, docs) => {
    if (err) {
      return res.send({error: 'Something went wrong'});
    }
    res.json(docs);
  });
});


问题似乎在这里:

    if (err) {
      res.send({error: 'Something went wrong'});
    }
    res.json(docs);
当err为trueish时,它会发回错误,然后还会抛出if和do res.json()

if(err){
return res.send({error:'Something should'});
}
返回res.json(docs);

但是现在您需要首先找出为什么err不是未定义的:)

问题似乎在这里:

    if (err) {
      res.send({error: 'Something went wrong'});
    }
    res.json(docs);
当err为trueish时,它会发回错误,然后还会抛出if和do res.json()

if(err){
return res.send({error:'Something should'});
}
返回res.json(docs);

但是现在您需要首先找出为什么err不是未定义的:)

在if条件语句do
return res.send({error:“balbalba”})
。谢谢,现在它可以工作了:Dinside if条件语句do
return res.send({error:“balba”})
。谢谢,现在它可以工作了:D