Express JS中的异常处理

时间:2018-11-16 07:53:47

标签: node.js express

我正在使用express JS开发rest api。我想显示一些错误,例如找不到路由,找不到数据,验证错误。我正在使用异步等待结构。我需要知道如何在Express JS中管理几种异常处理。我搜索seveal网站,但未找到确切方法。到处写入要使用nodeJS的默认异常。但是我需要在REST API中对其进行自定义。

我需要专家级nodejs开发人员帮助。如果有人知道最佳的表达错误处理资源,请提供给我链接以学习此内容

2 个答案:

答案 0 :(得分:0)

1。为了处理未找到的路由错误,您可以使用默认路由

app.all('/*', (req, res)=> res.status(404).send('Route Not Found'))

2。要处理响应,可以在单独的模块中设置一些预定义的响应,然后从该模块发送所有响应。喜欢

    //response.js file
    module.exports= {
       ok : (res, data)=> res.status(200).send({data}),
       error: (res, err)=> res.status(err.status).send({error})
    }

3。对于错误处理,您可以创建单独的错误文件,其中所有错误均归为一组,并通过列出的错误创建错误。而且,您可以尝试捕捉

4。要进行验证,您可以使用中间件和/或帮助程序来进行验证。

5。以下是我创建的一些node.js配置链接,您可以从那里获取参考

https://github.com/bapinmalakar/election-exitpoll-back (very simple, Github)
https://github.com/bapinmalakar/pt-backend (little complex, github)

答案 1 :(得分:0)

您可以使用中间件记录错误。如下面给出的示例中间件,我们可以捕获在整个应用程序中引发的错误。另外,我们可以捕捉到诺言拒绝

const express = require("express");

const app = express();

app.use((err, req, res, next) => {
    if (err) {
        res.status(err.statusCode || 500).send(err);
        console.error(err.stack);
        next();
    }

    console.error(`Message :: ${err.message}
                   Url :: ${req.originalUrl}
                   Method :: ${req.method}
                   Ip :: ${req.ip}
                   Time :: ${(new Date()).toLocaleTimeString()}`);
});

供参考,请使用此链接。 Click here