node-威尼斯人最新

nodered · 2020年08月27日 · 最后由 回复于 2022年08月19日 · 1049 次阅读
本帖已被设为精华帖!

node-red 可以独立运行,也可以直接嵌入到 node.js 应用中,这篇文章以具体的示例来进行说明。

环境说明

操作系统

liumiaocn:~ liumiao$ sw_vers
productname: mac os x
productversion: 10.15.2
buildversion: 19c57
liumiaocn:~ liumiao$

node 版本

liumiaocn:~ liumiao$ node -v
v10.15.3
liumiaocn:~ liumiao$ npm -v
6.4.1
liumiaocn:~ liumiao$

node-red 版本

liumiaocn:~ liumiao$ node-red -h
node-red v1.0.4
usage: node-red [-v] [-?] [--settings settings.js] [--userdir dir]
[--port port] [--title title] [--safe] [flows.json]

options:
-p, --port port port to listen on
-s, --settings file use specified settings file
--title title process window title
-u, --userdir dir use specified user directory
-v, --verbose enable verbose output
--safe enable safe mode
-?, --help show this help

documentation can be found at
liumiaocn:~ liumiao$

代码准备

准备如下基于 express 的示例代码,将本地的 node-red 嵌入到此应用之中

liumiaocn:nodered liumiao$ ls
sample.js
liumiaocn:nodered liumiao$ cat sample.js
var http = require('http');
var express = require("express");
var red = require("node-red");

// create an express app
var app = express();

// add a simple route for static content served from 'public'
app.use("/",express.static("public"));

// create a server
var server = http.createserver(app);

// create the settings object - see default settings.js file for other options
var settings = {
httpadminroot:"/red",
httpnoderoot: "/api",
userdir:"/users/liumiao/.node-red",
functionglobalcontext: { } // enables global context
};

// initialise the runtime with a server and settings
red.init(server,settings);

// serve the editor ui from /red
app.use(settings.httpadminroot,red.httpadmin);

// serve the http nodes ui from /api
app.use(settings.httpnoderoot,red.httpnode);

server.listen(8000);

// start the runtime
red.start();
liumiaocn:nodered liumiao$

注意事项:/users/liumiao/.node-red 请修改为自己的本地 node-red 的相应目录。

依赖准备

使用如下命令安装所需依赖

执行命令:npm install express node-red

liumiaocn:nodered liumiao$ npm install express node-red
...省略
express@4.17.1
node-red@1.0.4
updated 2 packages in 3.505s
liumiaocn:nodered liumiao$

启动服务

使用如下命令启动服务,因为此 node.js 服务本身没有添加功能,所以看起来似乎就是 node-red,但是我们知道这是我们使用 node 在 8000 启动的新的服务

liumiaocn:nodered liumiao$ node sample.js
11 mar 06:21:28 - [info]

welcome to node-red
===================

11 mar 06:21:28 - [info] node-red version: v1.0.4
11 mar 06:21:28 - [info] node.js version: v10.15.3
11 mar 06:21:28 - [info] darwin 19.2.0 x64 le
11 mar 06:21:28 - [info] loading palette nodes
11 mar 06:21:28 - [info] context store : 'default' [module=memory]
11 mar 06:21:28 - [info] user directory : /users/liumiao/.node-red
11 mar 06:21:28 - [warn] projects disabled : set editortheme.projects.enabled=true to enable
11 mar 06:21:28 - [info] flows file : /users/liumiao/.node-red/flows_liumiaocn.json
11 mar 06:21:28 - [warn]

---------------------------------------------------------------------
your flow credentials file is encrypted using a system-generated key.

if the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.

you should set your own key using the 'credentialsecret' option in
your settings file. node-red will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------

11 mar 06:21:28 - [info] starting flows
11 mar 06:21:28 - [info] started flows

使用/red 的 url 即可在 8000 端口确认在此 node.js 应用中嵌入的 node-red 功能了

来源:

nodered 澳门人威尼斯3966官网:

noderedgithub:

nodered 英文社区:

nodered 中文社区:https://www.iotschool.com/topics/node81

nodered 中文社区 qq 群:8604461

thingskit 将本帖设为了精华贴 08月27日 21:39
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
网站地图