Reputation: 61
I'm trying to use node-forever but I get an error when I try to start it.
I called this file 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();
and here is what happens when I run 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)
Any Help?
Upvotes: 2
Views: 844
Reputation: 10677
The problem is that you have watch: true
set but did not set watchDirectory
.
By default watchDirectory
is null, but it must be a string path. This seems to be poorly documented.
In your case, the following should solve your problem:
var child = new (forever.Monitor)('app-index.js', {
'silent': false,
'watch': true,
'watchDirectory': '/srv/http/mywebsite.com/public/',
// ... etc.
});
Upvotes: 2