Я получил эту ошибку в коде My Expressjs, написанном для бота Telegram. Я разместил этот код в CloudVps с помощью Nginx. Я использовал его для подключения к Telegram Bot API
Этот чат-бот Telegram устанавливает некоторые автоответы, когдаПользовательский ввод Соответствует, он отправит Автоответ.
Ошибка из файла журнала
TypeError: Cannot read property 'chat' of undefined
at app.post (/var/www/hellobot/index.js:22:37)
at Layer.handle [as handle_request] (/var/www/hellobot/node_modules/express/lib/router/layer.js:95:5)
at next (/var/www/hellobot/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/var/www/hellobot/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/var/www/hellobot/node_modules/express/lib/router/layer.js:95:5)
at /var/www/hellobot/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/var/www/hellobot/node_modules/express/lib/router/index.js:335:12)
at next (/var/www/hellobot/node_modules/express/lib/router/index.js:275:10)
at /var/www/hellobot/node_modules/body-parser/lib/read.js:130:5
at invokeCallback (/var/www/hellobot/node_modules/raw-body/index.js:224:16)
Вот мой код
app.listen(port, () => {
console.log(`Listening on port ${port}`);
});
app.post('/', (req, res, next) => {
var Content = require('./blogposts.json');
var random = Content.blogtext[Math.floor(Math.random() * Content.blogtext.length)];
const chatId = req.body.message.chat.id;
const sentMessage = req.body.message.text || req.body.message.sticker.file_id;
if (sentMessage.match(/start/gi)) {
axios.post(`${url}${apiToken}/sendMessage`, {
chat_id: chatId,
text: 'Hello I am Bot',
})
.then((response) => {
next();
res.status(200).send(response);
return res.end();
}).catch((error) => {
res.send(error);
});
} else if (sentMessage.match(/posts/gi)) {
axios.post(`${url}${apiToken}/sendMessage`, {
chat_id: chatId,
text: random.blogtext,
})
.then((response) => {
next();
res.status(200).send(response);
}).catch((error) => {
res.send(error);
});
} else {
axios.post(`${url}${apiToken}/sendMessage`, {
chat_id: chatId,
text: 'Sorry answer not found',
})
.then((response) => {
res.status(200).send(response);
}).catch((error) => {
res.send(error);
});
}
});