Как избавиться от «Не удается установить заголовки после их отправки». ошибка - PullRequest
0 голосов
/ 17 января 2019

Я создаю небольшой 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, я получаю сообщение «Не удается установить заголовки после их отправки». Как я могу исправить свой код?

Ответы [ 2 ]

0 голосов
/ 17 января 2019

проблема, кажется, здесь:

    if (err) {
      res.send({error: 'Something went wrong'});
    }
    res.json(docs);

когда значение err равно true, оно отправит обратно ошибку, а затем выпадет if и также выполнит res.json ().

сделать

    if (err) {
      return res.send({error: 'Something went wrong'});
    }
    return res.json(docs);

но теперь вам нужно выяснить, почему err не является неопределенным, во-первых:)

0 голосов
/ 17 января 2019

После выполнения 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);
  });
});

Или

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'});
    }else{
      res.json(docs);
    }
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...