我正在尝试使用此代码重新启动节点服务器,如果它意外停止,在此示例中“x”未定义,因此应该给出错误并重新启动,但实际上服务器完全退出。
var http = require('http');
var spawn = require('child_process').spawn;
var server = http.createServer(function (request, response) {
console.log(x);
});
server.listen(8125, 'localhost', function(err) {
if(err) spawn('node',['./server.js']);
});
console.log('Server running at http://127.0.0.1:8125/');
答案 0 :(得分:0)
如果崩溃,您需要forever.js重启您的流程。只要确保没有任何错误会导致每个实例崩溃(基本上,请确保您的应用程序永远有效,并且不会继续尝试重新启动已损坏的应用程序)。
答案 1 :(得分:0)
您的代码中的问题是您无法捕获server.listen中的错误,您应该向主进程添加一个事件处理程序,因此当发生异常或错误时,事件处理程序将管理此异常,下面的代码是在node.js脚本中处理错误的一个例子。
var http = require('http');
var server = http.createServer(function (request, response) {
console.log(x);
});
server.listen(8125, 'localhost');
process.on('uncaughtException', function(err) {
// Add some code here to process the excpetion
console.log('I m here');
});
console.log('Server running at http://127.0.0.1:8125/');