2012-11-05 59 views
1

我有以下代碼:要求的NodeJS模塊解析身體

var express = require('express'); 
var app = express.createServer(); 
var request = require('request'); 

app.use(myMiddleware); 
app.listen(5010); 

var payload = { id: 1 }; 

request({ 
    method: 'POST', 
    body:JSON.stringify(payload), 
    url: 'http://localhost:5000' 
}, function(err, res, body) { 
    console.info("Request Done"); 
}) 

在我的中間件代碼,我想分析的身體和提取請求ID,但由於某些原因,下面的代碼無法正常工作(有效載荷未定義):

var myMiddleware= function (req, res, next){ 
    var payload = req.body; 
    if (payload.id === 1) console.info("first request!!!!!"); 
    next(); 
} 

當我嘗試打印「有效載荷」我得到的是[object Object]

你能告訴我如何提取id,以及如何打印有效載荷對象的屬性?

謝謝, 李

+0

是來自節點自己的http庫的'request'還是使用某個外部庫? – jsalonen

+0

你有沒有嘗試payload = JSON.parse(req.body);畢竟這是一個字符串。 – Patrick

+0

@jsalonen我正在使用來自快遞的請求 – user429400

回答

2

解決通過添加:

app.use(express.bodyParser()); 

和通過添加以下對所述請求的代碼:

json: true 

添加JSON = true屬性我還去除之後JSON.stringify(...)從請求的正文(現在我不需要將字符串化身體,因爲它期望一個json對象)

謝謝。