Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重复的错误将导致永远停止重新启动node.js应用程序_Javascript_Node.js_Error Handling_Forever - Fatal编程技术网

Javascript 重复的错误将导致永远停止重新启动node.js应用程序

Javascript 重复的错误将导致永远停止重新启动node.js应用程序,javascript,node.js,error-handling,forever,Javascript,Node.js,Error Handling,Forever,我正在运行一个node.js服务器作为客户端Javascript应用程序的后端,我们正在使用Forever来启动node.js应用程序 在客户端代码中发现了一个bug,该bug在尝试打开文件时提供了不正确的路径,因为当前服务器不区分大小写。错误处理不当,导致node.js崩溃。在最初几次出现这种情况时,Forever成功地重新启动了应用程序,但在反复触发错误后,Forever将无法恢复应用程序,并且在尝试转到任何服务器页面时,我们会收到一个502错误网关 以下是未处理的错误: Error: EN

我正在运行一个node.js服务器作为客户端Javascript应用程序的后端,我们正在使用Forever来启动node.js应用程序

在客户端代码中发现了一个bug,该bug在尝试打开文件时提供了不正确的路径,因为当前服务器不区分大小写。错误处理不当,导致node.js崩溃。在最初几次出现这种情况时,Forever成功地重新启动了应用程序,但在反复触发错误后,Forever将无法恢复应用程序,并且在尝试转到任何服务器页面时,我们会收到一个502错误网关

以下是未处理的错误:

Error: ENOENT, no such file or directory 'public/projects/testHoc7/hocProject121/agents/agent1/index.agent'
    at Object.fs.openSync (fs.js:432:18)
    at Object.fs.writeFileSync (fs.js:971:15)
    at Object.editAgentXML [as edit_agent_XML] (/srv/AgentCubesOnline/project.js:699:5)
    at /srv/AgentCubesOnline/project.js:313:30
    at /srv/AgentCubesOnline/node_modules/mongodb/lib/mongodb/collection/query.js:159:5
    at Cursor.nextObject (/srv/AgentCubesOnline/node_modules/mongodb/lib/mongodb/cursor.js:742:5)
    at commandHandler (/srv/AgentCubesOnline/node_modules/mongodb/lib/mongodb/cursor.js:716:14)
    at /srv/AgentCubesOnline/node_modules/mongodb/lib/mongodb/db.js:1847:9
    at Server.Base._callHandler (/srv/AgentCubesOnline/node_modules/mongodb/lib/mongodb/connection/base.js:445:41)
    at /srv/AgentCubesOnline/node_modules/mongodb/lib/mongodb/connection/server.js:478:18
error: Forever detected script exited with code: 8
error: Script restart attempt #8

/srv/AgentCubesOnline/node_modules/mongodb/lib/mongodb/connection/base.js:245
        throw message; 
下面是我们在Forever无法重新启动应用程序时收到的日志消息:

Error: ENOENT, no such file or directory 'public/projects/testHoc7/hocProject121/agents/agent1/index.agent'
    at Object.fs.openSync (fs.js:432:18)
    at Object.fs.writeFileSync (fs.js:971:15)
    at Object.editAgentXML [as edit_agent_XML] (/srv/AgentCubesOnline/project.js:699:5)
    at /srv/AgentCubesOnline/project.js:313:30
    at /srv/AgentCubesOnline/node_modules/mongodb/lib/mongodb/collection/query.js:159:5
    at Cursor.nextObject (/srv/AgentCubesOnline/node_modules/mongodb/lib/mongodb/cursor.js:742:5)
    at commandHandler (/srv/AgentCubesOnline/node_modules/mongodb/lib/mongodb/cursor.js:716:14)
    at /srv/AgentCubesOnline/node_modules/mongodb/lib/mongodb/db.js:1847:9
    at Server.Base._callHandler (/srv/AgentCubesOnline/node_modules/mongodb/lib/mongodb/connection/base.js:445:41)
    at /srv/AgentCubesOnline/node_modules/mongodb/lib/mongodb/connection/server.js:478:18
error: Forever detected script exited with code: 8

/usr/lib/node_modules/forever/node_modules/forever-monitor/node_modules/broadway/node_modules/eventemitter2/lib/eventemitter2.js:283
          throw arguments[1]; // Unhandled 'error' event
                         ^
Error: Cannot stop process that is not running.
    at /usr/lib/node_modules/forever/node_modules/forever-monitor/lib/forever-monitor/monitor.js:332:26
    at process._tickCallback (node.js:419:13)

我们当然会修复错误并添加正确的错误处理,但我目前更感兴趣的是如何防止永远失败。什么会导致Forever停止将node.js带回来?

你真的希望它不断地重新启动你的应用程序,只是不断地填充日志文件吗?如果一个应用程序无法启动N次,其中N是一个合理的数字,那么它似乎不太可能启动N+1次。@jfriend00好吧,它并不是真的无法启动,错误是由用户交互触发的,只有8次,这似乎不是一个完全不合理的重新启动次数。我使用的是pm2,现在它似乎每次都会重新启动,没有问题,所以这可能是一个好的解决方案。如果它成功地重新启动,那么您可以缩短-minutetime选项,以便永远认为它在发生坏的用户交互之前已成功启动。我查看了forever源代码,没有发现它在重新启动多少次上有任何限制。@jfriend00这不是它们被称为forever的原因吗?除息的