Express sailsjs中的全局错误处理

Express sailsjs中的全局错误处理,express,error-handling,sails.js,middleware,Express,Error Handling,Sails.js,Middleware,我一直在做我的sails项目,这是一个你能做的怪物,它是一个真正的大项目,包括模型、服务、控制器等等 现在突然出现应用程序启动触发错误的情况 发送后无法设置标题 我对它进行了研发,并了解到这是因为我的代码中存在逻辑错误,然后突然错误更改为Undefined不是一个functino 由于代码中的错误不同,应用程序在不同的点上开始崩溃 所以我开始思考,在sailsjs中必须有某种方法来防止应用程序崩溃,这样我的应用程序的每个用户都不应该失去他们的会话,我可以记录每种类型的错误,并防止应用程序崩溃 所

我一直在做我的sails项目,这是一个你能做的怪物,它是一个真正的大项目,包括模型、服务、控制器等等

现在突然出现应用程序启动触发错误的情况
发送后无法设置标题

我对它进行了研发,并了解到这是因为我的代码中存在逻辑错误,然后突然错误更改为
Undefined不是一个functino

由于代码中的错误不同,应用程序在不同的点上开始崩溃

所以我开始思考,在sailsjs中必须有某种方法来防止应用程序崩溃,这样我的应用程序的每个用户都不应该失去他们的会话,我可以记录每种类型的错误,并防止应用程序崩溃

所以我再次对它进行了研发,发现下面的代码是在我的
config/express.js
中编写的,代码是这样的

process.on('uncaughtException',函数(err){
控制台日志(err);
})

在做了这么多的研发工作,阅读了不同的博客和答案之后,现在我想到了一些问题

1)在中途使用此功能是一种好方法吗

2)它会使我的应用程序不稳定吗

3)如果不是,我应该如何处理应用程序中的每种类型的错误,使应用程序不会崩溃

我正在使用sailsjs版本
0.9.13
,我的package.json如下所示

{
  "name": "",
  "private": true,
  "version": "0.0.0",
  "description": "a Sails application",
  "dependencies": {
    "MD5": "1.2.1",
    "async": "^0.9.0",
    "autocomplete": "0.0.1",
    "aws-sdk": "^2.1.39",
    "bitpay-node": "0.0.4",
    "convert-json": "^0.4.0",
    "cron": "^1.0.5",
    "download": "^0.1.18",
    "ejs": "0.8.4",
    "emailjs": "^0.3.8",
    "express": "^4.9.8",
    "feed": "0.2.6",
    "fs": "0.0.2",
    "grunt": "0.4.1",
    "ipv6": "3.1.1",
    "js-combinatorics": "^0.4.0",
    "mkdirp": "^0.5.0",
    "moment": "^2.9.0",
    "mysql": "2.2.0",
    "nodemailer": "0.6.3",
    "optimist": "0.3.4",
    "pagination": "^0.4.3",
    "payment-paypal-payflowpro": "0.0.4",
    "paynode": "^0.3.6",
    "paypal-rest-sdk": "^1.0.0",
    "pdfkit": "0.6.2",
    "request": "2.34.0",
    "request-json": "0.4.10",
    "sails": "0.9.13",
    "sails-disk": "~0.9.0",
    "sequelize": "1.7.3",
    "url": "^0.10.3",
    "wkhtmltopdf": "^0.1.4",
    "xlsjs": "^0.7.1",
    "xml2js": "^0.4.9"
  },
  "scripts": {
    "start": "node app.js",
    "debug": "node debug app.js"
  },
  "main": "app.js",
  "repository": "",
  "author": "",
  "license": ""
}
我还检查了上的express.js的错误处理,但我不确定如何在sailsjs中使用它

请指导我哪种方法最适合处理sailsjs中的错误。
谢谢

最好的办法是修复您的bug,无论您使用什么方法全局处理错误(uncaughtException),都会使您的应用程序不稳定

Sails不提供任何错误处理程序,除了express或node.js附带的错误处理程序,但如文档所述:

您可以使用在服务器崩溃时自动重新启动服务器。对于您的会话问题,您可以通过编辑sails项目的
config/session.js
文件将会话存储到redis或mongoDB中,就像在sails重新启动时会话不会丢失一样

您可以使用
try/catch
或节点来处理某些显式代码上的错误,但全局处理错误这根本不安全,也不是一种好的做法


在node.js中查找有关错误处理的更多信息,我指的是控制器中的“否”,我指的是应用程序中的每个位置,例如,与express.js中的uncaughtException一样,我可以捕获所有控制器、模型或服务中的每种类型的错误……我还询问了express.js中的uncaughtException方法,是否使用此方法是一种好方法?另外,请让我知道与express.js相关的sailsjs中是否存在任何类型的错误处理。正确的方法是在服务器永久崩溃时重新启动服务器(在类似的情况下)。看看sails文档,就像我说的catch uncaughtException不是一个好方法,它会使应用程序不稳定。除了我上面提到的默认节点解决方案之外,sails中没有任何错误处理。好的,感谢您的指导,请编辑答案,以便我可以对其进行投票。