我使用heroku和node.js制作了在线聊天机器人,然后当我验证webhook时出现错误
Here it's an error on line developer
当我运行/ webhook并在此处出错时
UnhandledPromiseRejectionWarning:未处理的承诺拒绝。该错误是由于在没有catch块的情况下抛出异步函数而产生的,或者是由于拒绝了未使用.catch()处理的诺言而产生的
和
DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。将来,未处理的承诺拒绝将以非零退出代码终止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');
});
我认为我做出错误的承诺需要帮助,谢谢您
答案 0 :(得分:0)
假设您正在使用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));
});