node.js - Express错误: EMFILE,打开的文件太多

标签 node.js express pug

我收到以下非常烦人的错误:

Error: EMFILE, too many open files '/home/savagegames.net/views/index.jade'
at Object.openSync (fs.js:240:18)
at Object.readFileSync (fs.js:128:15)
at View.contents (/home/savagegames.net/node_modules/express/lib/view/view.js:121:13)
at Function.compile (/home/savagegames.net/node_modules/express/lib/view.js:68:45)
at ServerResponse._render (/home/savagegames.net/node_modules/express/lib/view.js:417:18)
at ServerResponse.<anonymous> (/home/savagegames.net/node_modules/express/lib/view.js:318:17)
at /home/savagegames.net/node_modules/express-mongoose/index.js:45:21
at resolve (/home/savagegames.net/node_modules/express-mongoose/index.js:75:12)
at ServerResponse.expressmongoose [as render] (/home/savagegames.net/node_modules/express-mongoose/index.js:37:12)
at /home/savagegames.net/controllers/index_controller.coffee:49:18

我认为这是 Express 的问题;我该如何补救?谢谢。

最佳答案

据我发现,当发生某些错误并且某些文件未关闭时,就会发生这种情况(当然这是一个错误)。就我而言,node-postgres 错误导致(奇迹般地)可用描述符耗尽。当我删除导致数据库错误的代码时,EMFILE 消失了。

我想它可以在 node.js 代码中修复 - 它应该在垃圾收集时关闭文件对象。尽管这些丢失的文件描述符可能仍然被其他东西锁定。

关于node.js - Express错误: EMFILE,打开的文件太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11255020/

相关文章:

node.js - 返回的对象未定义,使用 dynamicHelpers

json - 如何包含静态 JSON 文件以使用 Jade 和 Grunt 进行编译

node.js - 如何在 Express 中使用 Jade 的 CoffeeScript 过滤器?

node.js - 如何使用 Redis 在 Node Worker 之间共享缓存?

javascript - MongoDB .find 在 shell 中有效,但在 js 中无效

javascript - S3 putObject 回调不返回预期的对象

javascript - *ngIf 创建无限循环并且永远不会解析

JavaScript 数组澄清

javascript - Sequelize - 更新查询并返回 : true succeeds but returns undefined

node.js - 通过nodejs路由网页