首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >捕获低级别快递js异常

捕获低级别快递js异常
EN

Stack Overflow用户
提问于 2015-09-20 11:14:45
回答 1查看 152关注 0票数 1

当我强调测试我的Express服务器(用请求轰击它)时,我可以用以下错误使它崩溃:

代码语言:javascript
运行
复制
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错误?

(注意:我已经安装了过眼云烟,但仍然可以触发错误。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-20 11:21:09

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

代码语言:javascript
运行
复制
app.use(function(err, req, res, next) {
  console.error(err.stack);
  res.status(500).send('Something broke!');
});

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

代码语言:javascript
运行
复制
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自动重新启动应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32678738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档