#node.js #express #post #routes
#node.js #выразить #Публикация #маршруты
Вопрос:
По какой-то причине тело запроса не определено при попытке выполнить запрос post:
вот мой роутер: router.route("/").post(schoolController.createSchool);
вот что я поместил в schoolController для createSchool:
exports.createSchool = async (req, res) => {
try {
console.log(req.body);
// return undefined
const newSchool = await School.create(req.body);
res.status(201).json({
status: "success",
data: {
school: newSchool,
},
});
} catch (err) {
res.status(400).json({
status: "fail",
message: err,
});
}
};
кроме того, я следую курсу джонаса по nodejs на udemy, и у него есть почти то же самое, что и это, за исключением того, что он предназначен для обработки запросов на тур вместо школы
Комментарии:
1. возможно, какая-то проблема с конфигурацией используемого вами анализатора. С текущими деталями в вашем вопросе невозможно определить, в чем может быть причина, по которой оно не определено
2. Вы добавили промежуточное программное обеспечение для синтаксического анализа тела? expressjs.com/en/resources/middleware/body-parser.html
3. нет что такое промежуточное программное обеспечение для синтаксического анализа тела?
Ответ №1:
Проблема, с которой вы столкнулись здесь, вероятно, заключается в том, что вы неправильно настроили промежуточное программное обеспечение средства анализа тела. Обычный запрос req
не будет содержать никакого свойства по имени body
. Только после того, как запрос пройдет через промежуточное программное обеспечение body-parser, body
ключ будет добавлен к req
. Вы можете попробовать консольное ведение журнала req
. Если запрос зарегистрирован правильно, более чем вероятно, что вам нужно изучить правильную настройку промежуточного программного обеспечения bodyparser, прежде чем вы сможете использовать req.body
в своем коде.