2012-08-09 20 views
1

我想將POST方法的請求正文中的JSON數據發送到將寫入node.js中的服務器。我已經嘗試了一個代碼;如何從node.js服務器中的傳入請求正文中排除JSON

var http = require('http'); 
http.createServer(function (req, res) { 
    console.log(req.body) 
}).listen(1337, '127.0.0.1'); 
console.log('Server running at http://127.0.0.1:1337/'); 

我用捲曲測試過它;

curl -i -v -X POST -d '{"a":5}' http://127.0.0.1:1337 -H "content-type:application/json" 

但它說,身體是不確定的。

有沒有辦法從請求中獲取JSON數據?

謝謝!

回答

3

Node.js是開箱即用的低級別。要麼你必須自己捕獲請求主體,要麼使用諸如connect之類的東西。

DIY:

var http = require('http'); 
http.createServer(function (req, res) { 
    var body = ''; 
    req.on('data', function(data) { 
     body += data; 
    }); 
    req.on('end', function() { 
     console.log(body); 
    }); 
}).listen(1337, '127.0.0.1'); 
console.log('Server running at http://127.0.0.1:1337/'); 

連接:

var connect = require('connect'); 
connect() 
    .use(connect.bodyParser()) 
    .use(function(req, res) { 
     console.log(req.body); 
    }) 
    .listen(3000); 
相關問題