2013-03-28 111 views
2

我试图永久使用节点,但当我尝试启动它时出现错误。节点永远错误

我叫这个文件start.js

var forever = require('forever-monitor'); 

    var child = new (forever.Monitor)('app-index.js', { 
    'silent': false, 
    'watch': true, 
    'logFile': '/srv/http/mywebsite.com/logs/forever.log', // Path to log output from forever process (when daemonized) 
    'outFile': '/srv/http/mywebsite.com/logs/node-stdout.log', // Path to log output from child stdout 
    'errFile': '/srv/http/mywebsite.com/logs/node-stderr.log' // Path to log output from child stderr 
    }); 

    child.on('exit', function() { 
    console.log('admin/app-index.js has exited'); 
    }); 

    child.start(); 

这里是发生了什么,当我运行节点start.js

path.js:360 
     throw new TypeError('Arguments to path.join must be strings'); 
      ^
TypeError: Arguments to path.join must be strings 
    at path.js:360:15 
    at Array.filter (native) 
    at Object.exports.join (path.js:358:36) 
    at exports.attach (/srv/http/mywebsite.com/public/admin/node_modules/forever-monitor/lib/forever-monitor/plugins/watch.js:45:20) 
    at Object.bootstrap (/srv/http/mywebsite.com/public/admin/node_modules/forever-monitor/lib/forever-monitor/monitor.js:35:28) 
    at exports.App (/srv/http/mywebsite.com/public/admin/node_modules/forever-monitor/node_modules/broadway/lib/broadway/app.js:47:21) 
    at new exports.Monitor (/srv/http/mywebsite.com/public/admin/node_modules/forever-monitor/lib/forever-monitor/monitor.js:118:16) 
    at Object.<anonymous> (/srv/http/mywebsite.com/public/admin/start.js:3:15) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 

任何帮助吗?

回答

2

问题是你有watch: true设置,但没有设置watchDirectory

默认watchDirectory为空,但它必须是字符串路径。这似乎没有很好的记录。

在你的情况,下面应该解决您的问题:

var child = new (forever.Monitor)('app-index.js', { 
    'silent': false, 
    'watch': true, 
    'watchDirectory': '/srv/http/mywebsite.com/public/', 
    // ... etc. 
});