【发布时间】:2015-01-07 17:21:51
【问题描述】:
我需要运行包含配置信息的节点 js 文件集,它通常必须在其中运行端口号和 IP 地址,然后在 node.js 中使用永远我需要在终端中运行脚本,而无需配置有任何手动输入。
【问题讨论】:
标签: javascript node.js forever
我需要运行包含配置信息的节点 js 文件集,它通常必须在其中运行端口号和 IP 地址,然后在 node.js 中使用永远我需要在终端中运行脚本,而无需配置有任何手动输入。
【问题讨论】:
标签: javascript node.js forever
对于程序化方法,您可以使用Forever-Moniter
var forever = require('forever-monitor');
var child = new (forever.Monitor)('your-filename.js', {
最大:3,
沉默:真的,
选项: []
});
child.on('退出', function () {
console.log('your-filename.js has exited after 3 restarts');
});
child.start();
【讨论】:
您可以使用 child_process 模块。查看文档,那里有一些有用的信息:http://nodejs.org/api/child_process.html
举个简单的例子
var exec = require('child_process').exec;
exec('forever', function callback(error, stdout, stderr){
// cb
});
如果你不需要回调/不想等待执行:
var exec = require('child_process').exec('forever').unref();
这有帮助吗?
最好的 马克
编辑:好的,不确定我是否真的明白你的问题的重点,但我的回答结合https://stackoverflow.com/a/23871739/823851 可能会提供一个很好的解决方案。
【讨论】:
用法:
【讨论】:
node-config 是一个很好的模块,用于管理 Node.js 应用程序的不同配置。
例如,要进行“生产”配置,/config/production.json 将包含:
{
"port" : "3000",
"ip" : "192.168.1.1"
}
在您的节点应用程序 JS 文件之一中:
config = require('config')
....
var port = config.port;
var ip = config.ip;
要以这种配置启动应用程序,只需先从 shell 将 NODE_ENV 设置为生产环境,然后再运行应用程序。
export NODE_ENV=production
forever start app.js
根据需要为每个环境制作额外的配置 JSON 文件。未指定环境时使用default.json。
【讨论】: