経緯
Bluemixのリージョンに日本(とタイムゾーンの同じ地域)がないため、単純に日付が出力できない。
調べると、Moment.jsの利用で解決できそうなので、Node-REDでの利用方法を含めてまとめた。
前提
- Bluemixに登録済み(トライアルでも可)
- ボイラープレートのNode-REDのアプリを作成済み
内容
-
package.jsonにMoment.jsの依存関係を追加する
package.json(修正前)"dependencies": { : "node-red-nodes-cf-sqldb-dashdb":"0.x" },
package.json(修正後)"dependencies": { : "node-red-nodes-cf-sqldb-dashdb":"0.x", "moment": "^2.17.1" },
注意)
"node-red-nodes-cf-sqldb-dashdb":"0.x"
行の末尾にカンマを忘れない。 -
bluemix-settings.jsにmomentを
require
する設定を記載するbluemix-setting.js(修正前)functionGlobalContext: { },
bluemix-setting.js(修正後)functionGlobalContext: { moment : require("moment") },
補足)
functionGlobalContext
にrequire
を記載すると、function node内でglobal.context
から利用できるようになる -
Deploy
- Eclipse Orion Web IDEを用いている場合は、「ワークスペースからアプリケーションのデプロイ」ボタンを押す
- GitHub&Delivery Pipelineを利用している場合は、コミット&プッシュする(自動的にデプロイされる)
利用
Node-REDのFlowでfunction nodeを追加して、以下のようにmomentを利用する
var date = context.global.moment();
date.locale("ja").tz("Asia/Tokyo"); // ロケールを日本語、タイムゾーンを東京に設定
msg.payload = date.format("LLL");
return msg;
備考
Moment.jsの詳細については、http://momentjs.com を参照