'require'关键字在节点红色功能节点中不起作用

时间:2016-04-20 23:14:08

标签: javascript node.js ibm-cloud node-red

节点红色功能节点中的第一行是

var moment = require('moment-timezone');

...

我正在尝试为传感器数据建立时区正确的日期/时间戳。此节点运行时出现以下错误;

ReferenceError:未定义require(第1行,第14行)

顺便说一句,这个函数还有其他一直运行良好的JavaScript。

我的Package.json没有错误,我有“moment-timezone”:“0.5.3”已添加。

我从一点或研究中了解到我需要在settings.js文件中添加一些内容,但是,我需要一些关于添加内容的指导,以便识别“require”。

2 个答案:

答案 0 :(得分:9)

this GitHub issue answer所述,您不能在函数节点中使用require本身,但可以将外部模块添加到用于运行函数的沙箱中。您可以在functionGlobalContext文件中设置settings.js,如下所示:

functionGlobalContext: {
    tzModule:require('moment-timezone')
}

然后可以使用以下代码引用该模块:

var moment = global.get('tzModule');

查看Node-RED documentation on global-context了解完整详情。

答案 1 :(得分:1)

Settings file:/Users/aiquantong/.node-red/settings

请在此文件中配置,它将正常工作。