如何以编程方式运行node . js应用程序

How to run node js application programmatically using forever

本文关键字:node js 应用程序 运行 方式 编程      更新时间:2023-09-26

我需要运行一组节点js文件,其中包含配置信息,它必须运行通常的端口号和IP地址,然后使用node.js中的forever,我需要在终端中运行脚本配置,而无需任何手动输入。

对于程序化方法,您可以使用forever - monitor

var forever = require('forever-monitor');var child = new (forever.Monitor)('your-filename.js', {马克斯:3,沉默:没错,选择:[]});的孩子。On ('exit', function () {Console.log ('your-filename.js重启3次后退出');});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();

有帮助吗?

最好Marc

编辑:好吧,我不确定我是否真的明白你的问题,但我的答案结合https://stackoverflow.com/a/23871739/823851可能会提供一个很好的解决方案。

用法:

  • 永远启动hello.js启动一个进程。查看由forever
  • 启动的所有进程列表
  • 永远停止hello.js来停止进程,或者永远停止0来停止索引为0的进程(如永远列表所示)。

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设置为production。

export NODE_ENV=production
forever start app.js

根据需要为每个环境创建额外的配置JSON文件。

不指定环境时使用default.json