我收到以下非常烦人的错误:
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/