当我对我的Express服务器进行压力测试(用请求轰炸它)时,我可以使用以下错误使其崩溃:
accept EMFILE
在加载时,我希望Express忽略它无法处理和继续运行的TCP请求,而不是崩溃。我怎样才能干净地抓住<script src='devtest/jsPDF-master/libs/FileSaver.js'></script>
<script src='devtest/jsPDF-master/jspdf.js'></script>
错误?
(注意:我已设置toobusy-js但仍可触发错误。)
答案 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
自动重启您的应用。