在节点中获取body json特定数据

时间:2015-07-05 06:33:08

标签: javascript json node.js

我使用以下模块中的节点js的req res,我想发送发布消息正文以下json

{
    "Actions": [
        {
            "file1": {
                "name": "file 1",
                "content": "file 2 content"
            },
            "file2": {
                "name": "file 2",
                "content": "file 2 content"
            }
        }
    ]
}

如何从req主体获取名称和内容

我使用创建服务器,我有req和res https://github.com/nodejitsu/node-http-proxy

更新

这是我的代码

var http = require('http'),
    httpProxy = require('http-proxy'),

    url = require('url');

http.createServer(function (req, res) {

   var hostname = req.headers.host.split(":")[0];


    console.log(req.body);

1 个答案:

答案 0 :(得分:0)

问题是Node的http API很糟糕。要获得正文,您需要自己监听数据事件并构建正文字符串。

var http = require('http'),
    url = require('url');

var server = http.createServer(function (req, res) {
  var body = '';
  req.on('data', function (chunk) {
    body += chunk;
  });
  req.on('end', function () {
    var json = JSON.parse(body);
    console.log(json.Actions[0].file1.content);
    res.writeHead(200);
    res.end();
  });
});

server.listen(8080);

我强烈建议使用像Express这样隐藏所有这些细节的东西。