在异步快速路由回调中消除重复的try catch语句?

时间:2019-05-30 11:37:23

标签: node.js express async-await

我有一个用Express的Node JS编写的api。我所有的路线都遵循这种模式:

<div *ngFor="let offer of offers; let i= index;">
  <div class=`animated infinite slideInLeft delay-${i}`>offer data</div>
</div>

这个尝试陷阱在我所有的路线中都是相同的。我可以通过几种方法来否定它,只将它写在一个地方,所以我的路线更像是:

router.get("/my/url", async (req, res) => {
  try{
    // await code...
  }catch(error){
    console.error(error.message);
    res.status(500).json({message: "Server Error"})
  }
});

1 个答案:

答案 0 :(得分:1)

您应该检出此软件包express-async-errors

express之后导入包,然后只需定义这样的错误处理程序

app.use((err, req, res, next) => {
    console.error(err.message);
    res.status(500).json({message: "Server Error"})
});