我正在尝试永久使用node,但是当我尝试启动它时出现错误。
我将此文件称为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();
以下是运行node 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)
任何帮助?
答案 0 :(得分:2)
问题是您设置了watch: true
但未设置watchDirectory
。
默认情况下,watchDirectory
为null,但必须是字符串路径。这似乎记录不清。
在您的情况下,以下内容可以解决您的问题:
var child = new (forever.Monitor)('app-index.js', {
'silent': false,
'watch': true,
'watchDirectory': '/srv/http/mywebsite.com/public/',
// ... etc.
});