質問: global.get('sensor1').get(); return msg; ``` ### 試したこと global.get('sensor1')をcontext.global.get('sensor1')にしましたが、同じでした。 ### 補足情報(FW/ツールのバージョンなど) Node-Red v0.17.5 Node.js v8.9.4
回答: Node-Redはあいにく使用していないので、Qiitaの記事を参考に調べてみました。 Node-REDの設定 - Qiita > > functionGlobalContext > ---------------------- > > > function nodeの中では他のライブラリをrequireできませんがfunctionGlobalContextであらかじめrequireしておくことでcontext.globalからライブラリにアクセスできるようになります。以下が設定例。 > > > > ``` > functionGlobalContext: { > jsforce: require('jsforce') > }, > ``` > > 設定ファイルの方は正しく書けているみたいですね。 > > 上記のように設定してfunction nodeで以下のようにしてdebug nodeに吐くとjsforceオブジェクトが格納されていることがわかります。ただしライブラリがnpmでグローバルにインストールされているかsettings.jsより下層にインストールされていなければいけません。 > > > > ``` > msg.payload = context.global.jsforce; > return msg; > ``` > > ここが引っかかりました。 質問文は`msg = global.get('sensor1').get();`ですよね? Qiitaの記事の書き方に習った場合、 `msg = context.global.sensor1.get();`になるんじゃないでしょうか? 一度こちらの書き方で試してみてください。