Ошибка типа: невозможно прочитать свойство 'chat' из неопределенного - PullRequest
0 голосов
/ 09 мая 2019

Я получил эту ошибку в коде 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);
            });
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...