2013-03-28 110 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. 
});