Ошибка Express js при попытке создать запрос на публикацию

#node.js #mongodb #express #post

Вопрос:

Я пытался создать запрос на публикацию, чтобы создать «Предложение». К сожалению, каждый раз, когда я пытаюсь отправить данные, он продолжает возвращать ошибку, и я не знал, почему это не работает ! кто-нибудь может мне помочь, пожалуйста ?

это мой экспресс-API

 router.post('/create-offer', (req, res) => {

Offer = new Offer({
    Title: req.body.Title,
    Position: req.body.Position,
    Location: req.body.Location,
    Duration: req.body.Duration,
    WorkingHours: req.body.WorkingHours
   // OfferDescription: req.body.OfferDescription,
   // Tags: req.body.Tags,
})

Offer
.save()
.then(data => {
  res.json(data);
})
.catch(err => {
  res.status(500).send({
    message:
      err.message || "Some error occurred while creating the Offer."
  });
});
return res.send('Received a POST HTTP method');
 

})

и это моя модель mongodb:

введите описание изображения здесь

Я всегда получаю ошибку 500 введите описание изображения здесь

Комментарии:

1. различные проблемы, но Offer = new Offer это не поможет

2. Так ты можешь мне помочь ?!

3. измените переменную предложения на что-то другое, это переопределит вашу модель (или, если это константа, вызовет ошибки), затем удалите return res.send('Received a POST HTTP method'); строку, так как это приведет к ошибке уже отправленных заголовков, которую вы в настоящее время видите с консоли серверов

4. Это работает, большое вам спасибо !!

Ответ №1:

Попробуйте что-нибудь вроде:

 router.post('/offer', (req, res) => { // create-offer -> offer
const offer = new Offer({ // offer -> Offer
    Title: req.body.Title,
    Position: req.body.Position,
    Location: req.body.Location,
    Duration: req.body.Duration,
    WorkingHours: req.body.WorkingHours
})

return offer
  .save()
  .then(data => {
    return res.json(data);
  })
  .catch(err => {
    res.status(500).json({
      message:
        err.message || "Some error occurred while creating the Offer."
    });
  });
});

// remove res.send('...'), you can only give one response, using `res.send` and `res.json` will send two responses.