我正在使用express JS开发rest api。我想显示一些错误,例如找不到路由,找不到数据,验证错误。我正在使用异步等待结构。我需要知道如何在Express JS中管理几种异常处理。我搜索seveal网站,但未找到确切方法。到处写入要使用nodeJS的默认异常。但是我需要在REST API中对其进行自定义。
我需要专家级nodejs开发人员帮助。如果有人知道最佳的表达错误处理资源,请提供给我链接以学习此内容
答案 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