node-red 使用function节点引入NodeJS模块
在用Node red的function节点写代码时,有时需要用到NodeJS的模块。举个例子,一般在js语法中调用NodeJS自带的文件操作模块fs,则用下面语句引入:
var fs = require('fs');
但是node-red中运行会报错,无法使用require,这是由于node-red的沙箱机制,默认无法调用NodeJS模块,采用下面方法解决:
首先找到用户文件夹.node-red中的settings.js。.node-red文件夹对应windows系统在C盘用户文件夹里,Ubuntu一般在home文件夹下,为隐藏文件夹。在启动node-red时会显示文件夹位置,如下图标红的框内,也能找到。
打开settings.js,搜索functionGlobalContext部分,如下图所示,添加红框内语句可引入fs模块。如果你想引入其他模块,在后面添加就好,如我加了path,os模块。记得保存。
模块引入完毕,启动node-red,在function节点中输入以下语句即可使用模块。
var fs = context.global.get('fs');