2016-06-22 14 views
2

body-parserを使用して、POSTメッセージで受信JSONオブジェクトを解析しています。 JSONの特定の値を後でデータベースに送る変数に格納したいと思います。ここで解析されたJSON値をExpressの変数に格納する方法は?

は抜粋です:

var http = require('http'); 

    var express = require('express'); 
    var app = express(); 
    var bodyParser = require('body-parser'); 

    // Required to process the HTTP body. 
    // req.body has the Object while req.rawBody has the JSON string. 

    app.use(bodyParser.json()); // for parsing application/json 

    app.post('/', function(req, res){ 

     var tropo = new TropoWebAPI(); 

     parameters = req.body['session']['parameters']; 

     callerID = req.body['session']['from']['id']; 
     console.log(callerID); 

     if(callerID = 1234567) 
     { 
      \\Intentionally kept out 
     } 

しかし、それはこのTypeError例外で失敗します。プロパティを読み取ることができません。この@malix未定義

の 'ID' はJSONオブジェクトが何であるかです:

"session": { 
    "id": "89c3b5d830dd8bb8b372f802aadbdfc9", 
    "accountId": "1234567", 
    "applicationId": "1234567", 
    "timestamp": "2016-06-23T17:09:48.685Z", 
    "userType": "HUMAN", 
    "initialText": null, 
    "callId": "7ab0b9306af2139a1a2e6cc8b7bd7af9", 
    "to": { 
     "id": "408XXXYYYY", 
     "name": "408XXXYYYY", 
     "channel": "VOICE", 
     "network": "SIP" 
    }, 
    "from": { 
     "id": "408ZZZAAAA", 
     "name": "408ZZZAAAA", 
     "channel": "VOICE", 
     "network": "SIP" 
    }, 
} 

私は408ZZZAAAAを抽出しようとしています

助けてください。

+0

req.body ['session'] ['from'] 'はプロパティ' id'を持っていますか? 私に 'req.body.session.from'を教えてもらえますか? – Natsathorn

+0

は確かにその:{ID: '91XXXXXXXXXX 名:' 91XXXXXXXXXX チャネル: 'VOICE'、 ネットワーク: 'SIP'} –

+0

は 'req.body.session.from.name'はそれが仕事であるとしてみてください? – Natsathorn

答えて

0

私はこれを理解しました。最初のPOSTメッセージが表示されたら、必要な結果が得られます。エラーは、APPがソースクライアントから2番目のPOSTをトリガーするように設定されているためにのみ表示されます。同じapp.post()をトリガするこの2番目のPOSTには、 "from"オブジェクトがすべて含まれていません。したがって、2回目の試行でエラーが表示されますが、最初の投稿自体に必要な情報が表示されます。

+0

あなたの問題を解決した場合は、あなた自身の回答を受け入れることができます。 – tmslnz

関連する問題