2017-04-25 25 views
1

在我app.post文件我已經改變升級req.param到req.body改變方法= POST方法來從= twilio MediaURL GET

var mediaUrl = req.param('MediaUrl' + i); //deprecated in express 4 

var mediaUrl = req.body.MediaUrl + i; or req.params.MediaUrl + i; 

看我的控制檯日誌它鏈接到twilio MediaURL0。但在Heroko登錄

heroku[router]: at=info method=POST path="/message" host=(removed).herokuapp.com request_id=(removed)" dyno=web.1 connect=0ms service=95ms status=200 bytes=256 protocol=https 

成爲

heroku[router]: at=info method=GET path="/null" host=(removed).herokuapp.com request_id=(removed) fwd="74.3.132.218" dyno=web.1 connect=0ms service=3ms status=304 bytes=146 protocol=https 

當我升級。我試圖弄清楚爲什麼MediaURL將成爲Method = GET,但其他任何信息都將保留爲Method = POST。我需要我的MediaURL爲我的Twilio SMS消息傳遞應用程序工作的Method = POST。

這裏是我的完整app.post

app.post('/message', function (req, res) { 
groupRef.where({"memberNumber":req.body.From}).limit(1).on("value", function (data){ 
    if(data.count()){ 
     data.forEach(function(snapshot){ 
      var member = snapshot.value(); 
      messagesRef.push({ 
       sid: req.body.MessageSid, 
       type:'text', 
       tstamp: new Date().toLocaleString('en-US', { timeZone: "America/Denver" }), 
       fromName:member.memberName, 
       fromNumber:req.body.From, 
       message:req.body.Body, 
       media:"", 
       groupNumber:req.body.To 
      }); 
     }); 
    } 
}); 

var numMedia = parseInt(req.body.NumMedia); 
if (numMedia > 0) { 
    for (i = 0; i < numMedia; i++) { 
     //var mediaUrl = req.body.MediaUrl + i; 
     //var mediaUrl = req.params.MediaUrl + i; 
     var mediaUrl = req.param('MediaUrl' + i); //deprecated in express 4 
     groupRef.where({"memberNumber":req.body.From}).limit(1).on("value", function (data){ 
      if(data.count()){ 
       data.forEach(function(snapshot){ 
        var member = snapshot.value(); 
        messagesRef.push({ 
         sid: req.body.MessageSid, 
         type:'text', 
         tstamp: new Date().toLocaleString('en-US', { timeZone: "America/Denver" }), 
         fromName:member.memberName, 
         fromNumber:req.body.From, 
         message:"", 
         media:mediaUrl, 
         groupNumber:req.body.To 
        }); 
       }); 
      } 
     }); 
    } 
} 

var resp = new twilio.TwimlResponse(); 
resp.message('Message received.'); 
res.writeHead(200, { 
    'Content-Type':'text/xml' 
}); 
res.end(resp.toString()); 

});

回答

1

如果你算算你將不得不使用括號符號來訪問一個對象的屬性名稱。

var mediaUrl = req.body['MediaUrl' + i]; 
+0

我很尷尬地說,我試過var mediaUrl = req.body。['MediaUrl'+ i];儘快我會接受這個答案。謝謝您的幫助 –