Проблема с обнаружением тела запроса
Пишу свое приложение для обмена сообщениями и получается так, что до сервера каким-то чудесным образом не доходят сообщения.
В консоли приложения вижу то, что я хочу отправить:
{"DataTime": "17:06:08",
"JwtToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY2YzllMzM5NzcwNWU1MjA5ZGUxNzZlNyIsIm5hbWUiOiIxMjMiLCJpYXQiOjE3MjY4NTE1OTl9.mmMZmKBlJRUfgjpGzMr9_YFz9qTGE1iGIuOKBWy6fRo",
"recipient": "admin ",
"sender": "66c9e3397705e5209de176e7",
"text": "123",
"type": "NewMessage"}
После отправки на WebSoket, который обрабатывает запрос для передачи на конкретную ссылку post-запрос сервера и я получаю тоже, что и от приложения, но когда эти данные передаются на сервер, то теряются все данные, которые были везде и выдает краш сервера. Вот код запроса сервера(nodejs):
app.post('/api/SentMessage', async (res, req) => {
console.log("Sending message");
console.log(req.body)
const {DataTime, JwtToken, recipient, sender, text} = req.body;
try {
const user = await User.findOne({ Jwt: JwtToken }).lean();
if (!user) {
console.log("Не найден пользователь или неправильный токен");
return res.status(403).json({ success: false, message: 'Ошибка в токене' });
}
try {
const SentMess = await SendingMess(text, sender, recipient, DataTime);
console.log("Новое сообщение:", SentMess);
res.status(200);
} catch (error) {
console.error("Ошибка сохранения сообщений:", error);
res.status(405).json({ success: false, message: "Что-то пошло не так при поиске сообщений" });
}
} catch (error) {
console.log(error);
res.status(500).json({success:false, message:"При отправке сообщения произошла ошибка"})
}
});
И после получения запроса на обработку выдает вот такую ошибку:
Sending message
undefined
D:\12\APIServer\app.js:160
const {DataTime, JwtToken, recipient, sender, text} = req.body;
^
TypeError: Cannot destructure property 'DataTime' of 'req.body' as it is undefined.
at D:\12\APIServer\app.js:160:12
at Layer.handle [as handle_request] (D:\12\APIServer\node_modules\express\lib\router\layer.js:95:5)
at next (D:\12\APIServer\node_modules\express\lib\router\route.js:149:13)
at Route.dispatch (D:\12\APIServer\node_modules\express\lib\router\route.js:119:3)
at Layer.handle [as handle_request] (D:\12\APIServer\node_modules\express\lib\router\layer.js:95:5)
at D:\12\APIServer\node_modules\express\lib\router\index.js:284:15
at Function.process_params (D:\12\APIServer\node_modules\express\lib\router\index.js:346:12)
at next (D:\12\APIServer\node_modules\express\lib\router\index.js:280:10)
at cors (D:\12\APIServer\node_modules\cors\lib\index.js:188:7)
at D:\12\APIServer\node_modules\cors\lib\index.js:224:17
Думал проблема в WebSokete, но прогнав запрос через postman - краш сервера
Ответы (1 шт):
Оставлю ответ на свой вопрос здесь, вдруг кому поможет. При таких ошибках проверяйте как у вас заданы res
& req
. Они обязательно должны стоять (req, res)
и ни в каком другом порядке