#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:
Комментарии:
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.