0
這可能是非常愚蠢的,但我沒有找到太多關於這個,因爲我不明白我應該如何搜索這個。如何處理Express,NodeJS中路由處理程序調用的函數中的錯誤?
我有一個路由處理程序,可能會根據某些請求參數調用不同的函數,我想知道什麼是處理函數內部錯誤以便將錯誤傳遞到錯誤處理中間件的最佳方法。 考慮這樣的事情:
router.get('/error/:error_id', (req, res, next) => {
my_function();
}
function my_function(){
// do something async, like readfile
var f = fs.readFile("blablabla", function (err, data) {
// would want to deal with the error
});
}
期間
fs.readFile
如果出現錯誤,我該如何傳遞錯誤next
將其轉發到錯誤中間件?唯一的解決辦法是將下一個參數傳遞給功能函數my_function(next){...}
?
如果這個函數不調用任何異步I/O操作,在路由處理一個簡單的try/catch
將是確定的(我想),像這樣:
router.get('/error/:error_id', (req, res, next) => {
try{
my_function();
} catch(e){
next(e);
};
}
function my_function(){
// do stuff
var f = fs.readFileSync("blablabla"); // possibly throws an error
}
希望我做一些感覺。