【发布时间】:2020-01-28 15:02:52
【问题描述】:
假设我在 routes.js 文件中有这个伪代码:
var pkg = require('random-package');
app.post('/aroute', function(req, res) {
pkg.impl_func(data, function (err, result) {
myFunction(entity).then(user=>{
//DO_STUFF_HERE
res.render('page.ejs');
}).catch(err => {
console.log(err);
res.render('error.ejs');
});
});
});
function myFunction(username) {
//.....
}
我使用的 pkg 是在 npmjs 网站上找到的。 myFunction() 永远是我的职责。
在我的代码中,您可以看到当myFunction() 失败时,我已经实现了 then/catch 语句。
因此,当这种情况发生时,error.ejs 会被渲染。
但是当 npm 包失败时会发生什么?
在终端中,我收到错误消息,但服务器端没有错误处理。
这意味着,当它失败时,用户将不会收到error.ejs 的通知,很明显,因为我的代码中省略了此功能。
但是当 pkg 失败时,error.ejs 的渲染方法是什么?
既然我已经在下面使用.then()/.catch() 技术,我也可以在上面做吗?
换句话说,我可以嵌套.then()/.catch() 语句吗?
我可以将外部代码包围到try/catch(同时内部还有try/catch)吗?
【问题讨论】:
标签: javascript node.js express error-handling try-catch