节点永远错误

时间:2013-03-28 03:31:14

标签: javascript node.js forever

我正在尝试永久使用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)

任何帮助?

1 个答案:

答案 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.
});