Вы путаете синхронный код и асинхронный, вызов bot.telegram.getChat() немедленно возвращает Promise и ваш код по этому уже отправил ответ. Вот как нужно сделать:
app.get('/chat/:chat', (req, res) => {
const chat = req.params.chat;
const json = {};
bot.telegram.getChat(chat).then((info) => {
json.success = true;
json.info = info;
res.json(json);
}).catch((error) => {
json.success = false;
json.info.error = error.code;
json.info.method = error.on.method;
json.info.description = error.description;
res.json(json);
});
});
Или как можно сделать это по современному:
app.get('/chat/:chat', async (req, res) => {
const { chat } = req.params;
const json = {};
try {
const info = await bot.telegram.getChat(chat);
json.success = true;
json.info = info;
} catch (error) {
json.success = false;
json.info.error = error.code;
json.info.method = error.on.method;
json.info.description = error.description;
}
res.json(json);
});