当我强调测试我的Express服务器(用请求轰击它)时,我可以用以下错误使它崩溃:
events.js:85
throw er; // Unhandled 'error' event
^
Error: accept EMFILE
at exports._errnoException (util.js:746:11)
at TCP.onconnection (net.js:1308:24)
在加载下,我希望Express忽略TCP请求,它不能处理和移动,而不是崩溃。如何干净地捕获accept EMFILE
错误?
(注意:我已经安装了过眼云烟,但仍然可以触发错误。)
发布于 2015-09-20 11:21:09
像其他中间件一样定义错误处理中间件,但只有四个参数而不是三个参数,特别是带有签名的(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
自动重新启动应用程序。
https://stackoverflow.com/questions/32678738
复制相似问题