捕获低级别表示js异常

时间:2015-09-20 11:14:46

标签: node.js express

当我对我的Express服务器进行压力测试(用请求轰炸它)时,我可以使用以下错误使其崩溃:

accept EMFILE

在加载时,我希望Express忽略它无法处理和继续运行的TCP请求,而不是崩溃。我怎样才能干净地抓住<script src='devtest/jsPDF-master/libs/FileSaver.js'></script> <script src='devtest/jsPDF-master/jspdf.js'></script> 错误?

(注意:我已设置toobusy-js但仍可触发错误。)

1 个答案:

答案 0 :(得分:0)

像其他中间件一样定义错误处理中间件,除了四个参数而不是三个,特别是签名(err,req,res,next)。例如:

app.use(function(err, req, res, next) {
  console.error(err.stack);
  res.status(500).send('Something broke!');
});

您可以在其他app.use()和路由调用之后定义错误处理中间件;例如:

var bodyParser = require('body-parser');
var methodOverride = require('method-override');

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

http://expressjs.com/guide/error-handling.html

如果这不起作用,您可以使用process.on('uncaughtException'。或者您可以使用pm2自动重启您的应用。