只启动Node-red
如果只是想让Node.js主应用启动Node-red即可的话,Node-red官方论坛就提供了一段典型的实现了嵌入的代码。代码我就不贴了,参见如下网址:
https://nodered.org/docs/user-guide/runtime/embedding
该代码的问题包括:
1)主进程启动了Node-red,但是不能停止Node-red;
2)主进程没法查看Node-red的运行状态;
3)主进程没有自己的前端,事实上主进程就是个console应用,操作很不方便(可能因为本人对Node.js的console技术缺乏研究哈)。
明眼人可以看出,上述3个问题其实本质上是一个问题,问题3就是那个核心问题。要想解决这个问题,我们需要给主进程加个前端。
启停Node-red
Node.js里加个前端很容易,有现成的express框架。加了前端的主要代码如下:
// 变量声明和导入略
// 创建主进程的前端框架
var myapp = express();
var myserver = http.createServer(myapp); // 创建http
// 创建Node-red所需的前端框架
var app = express();
var server;
# 声明主进程前端启动Node-red
myapp.get('/start',(req,res,next)=>{
server=http