Node.js “如何创建错误处理”;“拦截器”;对于NodeJS

Node.js “如何创建错误处理”;“拦截器”;对于NodeJS,node.js,error-handling,Node.js,Error Handling,因此,我在互联网上做了大量的挖掘工作,但我一直无法找到问题的答案。我的目标是将记录到控制台的所有错误打印到数据库中。然而,我已经深入到我的项目中,回到我的try…catch…块并用错误扩展器编辑它们,或者只是在catch区域创建我自己的函数,这将是一件痛苦的事情 我想知道:有没有一种特定的方法可以在NodeJS中创建错误拦截?我的意思是,我假设每当一个错误被记录到控制台时,代码就会触发某种类型的事件,我想我正在寻找类似以下的东西: process.on(错误,async(e)=>{//my co

因此,我在互联网上做了大量的挖掘工作,但我一直无法找到问题的答案。我的目标是将记录到控制台的所有错误打印到数据库中。然而,我已经深入到我的项目中,回到我的
try…catch…
块并用错误扩展器编辑它们,或者只是在catch区域创建我自己的函数,这将是一件痛苦的事情

我想知道:有没有一种特定的方法可以在NodeJS中创建错误拦截?我的意思是,我假设每当一个错误被记录到控制台时,代码就会触发某种类型的事件,我想我正在寻找类似以下的东西:

process.on(错误,async(e)=>{//my code here})


有可能吗?是否有一个模块允许我这样做?在上下文中,我在无头Ubuntu 18.04服务器上运行最新版本的Node/NPM,并使用
pm2
控制我的程序进程。

你可以在应用程序主文件的末尾使用中间件

var bodyParser = require('body-parser');
    
app.use(bodyParser());
...
...

app.use(function(err, req, res, next) {
  // Error handler logic
});

您可以在express文档中找到更多关于这方面的信息。首先,找到所有
console.log()
语句并修改它们以使用您自己的错误报告方案并不是什么大问题。一个使用grep和replaceAll的优秀编辑器可以很快地完成这项工作。如果您仍然对此过敏,您可以使用自己的版本替换/覆盖
console.log()
,该版本可以对错误执行任何您想执行的操作。每当将错误记录到控制台时,代码都会触发某种事件-我所知不存在任何事件。它将输出发送到
stdout
stderr
,您可以在需要时拦截这些输出。