DB에서 라우터 및 두 개의 acync 가져 오기가 있습니다. 오류를 잡는 올바른 방법은 무엇입니까?여기 어떻게 오류를 잡을 수 있습니까?
는router.get('/restaurant/:id', async (req, res, next) => {
try {
let current_restaurant = await Restaurant.findOne({restaurantId: req.params.id}).exec();
let products = await Product.find({restaurant: req.params.id}).exec();
res.render('restaurant', {
user: req.user,
csrfToken: req.csrfToken(),
current_restaurant: current_restaurant,
products: products
});
} catch(e) {
// do whatever you want
console.log(e);
res.sendStatus(500);
}
});
당신은 정기적으로 약속이를 비교할 수 있습니다 당신이 await
을 사용하려고하는 경우
router.get('/restaurant/:id', async (req, res, next) => {
var current_restaurant = await Restaurant.findOne({restaurantId: req.params.id}).exec();
var products = await Product.find({restaurant: req.params.id}).exec();
res.render('restaurant', {
user: req.user,
csrfToken: req.csrfToken(),
current_restaurant: current_restaurant,
products: products
});
});
async/await를 사용할 때 try/catch를 사용하면 오류를 catch 할 수 있습니다. 대부분의 문서/튜토리얼에 [MDN 코드] (https://developer.mozilla.org/en-US/docs/Web)가 표시됩니다./JavaScript/Reference/Statements/async_function # Rewriting_a_promise_chain_with_an_async_function) –
마지막으로 투표하는 것을 알고 있지만 사람들이 가까운 투표를 통해 약간의 제한을 표시 할 수 있습니까? 내가 궁금해하는 질문은 최근에 전혀 이유가없는 투표 (또는 적어도 자신이 선택한 사람이 아님)에 가까운 투표를 가지고 있습니다. –
분명히 너무 광범위하지는 않지만, OP는 적어도 자신이 시도/catch, async/await를 사용하여 오류 처리의 모든 예를 고려해보십시오. 그 질문은 가난하게 연구하게 만든다. 그것이 그 문제에 포함 되었다면, 이것은 아마도 중복 될 것입니다. –