2017-03-20 5 views
0

私はまだこの初心者です。私がしたことは、httpリクエストを送信しようとしましたが、私はカスタムノードを介して以下のレスポンスを渡そうとしています。以下のように見えるMSGオブジェクト:httpリクエストから取得しているmsgオブジェクトを抽出するには?

[ 
    { 
    "userId": 1, 
    "deviceId": 2, 
    "type": "SM", 
    "eventName": "TemparatureChanged", 
    "stateName": "update", 
    "eventParameters": [ 
     { 
     "name": "temparature", 
     "type": "Double", 
     "value": 35.01 
     } 
    ] 
    } 
] 

私は配列上記eventParametersからを取得できますか?

私は、以下の機能ノード内を試してみました:

var data = msg.eventParameters[0].value; 
return data; 

そして、私は唯一のデバッグノードを介して上記のプロパティを印刷したいです。私のデバッグノードにはmsg.payloadが含まれています。また、完全なmsgオブジェクトとしてはまだ運がないと試しました。

そして、私のカスタムノード(IOT-入力)私はこれを持ってjsファイルに:私はつもりです

enter image description here

this.on('input', function (msg) { 
      node.warn("I saw a payload: "+msg.payload); 
      // in this example just send it straight on... should process it here really 
      node.send(msg); 
}); 

私の流れは次のようになります違う?どんな助けもありがとう!それがあるべきよう

答えて

1

あなたが質問の上部にあるが、その後、あなたのノードでconsole.logからそれが可能であればからあなたのサンプルMSGを得たところあなたが言うことはありませんあなたが持っているものはmsgではなくmsg.payloadです。

だからあなたのようなもの使用する必要があります。

var data = msg.payload[0].eventParameters[0].value; 

をし、またあなただけの機能ノードからdataを返すべきではありません、それはmsgオブジェクトでなければなりませんので、このような何か:

var data = msg.payload[0].eventParameters[0].value; 
msg.payload = data; 
return msg.payload; 
+0

素晴らしいです、これは動作します! 2番目の行(** msg.payload **)にちょっとしたタイプミスがあります。 – Kulasangar

1

msgは配列です:

var data = msg[0].eventParameters[0].value; 
+0

私は上記を試しましたが、** "TypeError:未定義の" eventParameters 'プロパティ**を読み込めません。私の流れに何か問題がありますか?しかし、msgを単に渡すと、実際にオブジェクト全体が印刷されています。 – Kulasangar

+1

完全なコードスニペットが役に立ちます。 –

+0

はい、できます。関数ノードのコードスニペット?または私のカスタムノードのjs? – Kulasangar

関連する問題