2012-11-05 43 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对象)

谢谢。