我使用 heroku 和 node 制作线路聊天机器人.js然后当我验证 webhook 时,我得到了一个错误
这是在线开发人员的错误
当我在这里运行/webhook 和错误时
未处理的承诺拒绝警告:未处理的承诺拒绝。此错误起源于在没有 catch 块的异步函数内部抛出,或者拒绝未使用 .catch(( 处理的承诺
和
DEP0018] 弃用警告:不推荐使用未处理的承诺拒绝。将来,未处理的承诺拒绝将以非零退出代码终止 Node.js 进程。
这是我的代码
app.post('/webhook', line.middleware(config), (req, res) => {
res.sendStatus(200)
Promise
.all(req.body.events.map(handleEvent))
.then((result) => res.json(result))
.catch();
throw new Error('Failed');
});
我想我做出了错误的承诺需要帮助,谢谢
假设您使用的是 Express,请尝试以下操作:
app.post('/webhook', line.middleware(config), (req, res) => {
Promise
.all(req.body.events.map(handleEvent))
.then(result => res.status(200).json(result))
.catch(err => res.status(500).end('Failed'));
});
或者,您可以使用next
函数将错误转发到 Express 错误处理程序:
app.post('/webhook', line.middleware(config), (req, res, next) => {
Promise
.all(req.body.events.map(handleEvent))
.then(result => res.status(200).json(result))
.catch(err => next(err));
});