在 Node.js 中发布和解码 JSON

Post and decode JSON In Node.js

本文关键字:解码 JSON Node js      更新时间:2023-09-26

我正在尝试将关联数组发布到另一个 Node.js 服务器,内部到我的服务器:

第一个服务器使用请求执行如下POST请求:

var request = require('request');
request.post('http://localhost:8084/',{ json: {"isposted": {"ok":"val"}}});

第二台服务器的结果如下:

{ '{"isposted":{"ok":"val"}}': '' }

而不是:

{"isposted":{"ok":"val"}}

服务器(2nd)用于解析数据的源代码如下:

var http = require('http');
var qs = require('qs');
var processRequest = function(req,callback) {
    var body='';
    req.on('data', function(data) { body+=data; });
    req.on('end',  function() { callback(qs.parse(body)); });
}
var server2 = http.createServer(function(req, res) {
    processRequest(req,function(data){
        try
        {
            data=JSON.parse(data.jsonData);
        }
        catch(e)
        {
            data=data;
        }
        console.log(data);
    });
 });

qs 是解码 JSON 的错误包,如下所示:callback(qs.parse(body)); .尝试像这样使用 JSON.parse:callback(JSON.parse(body));

尝试此操作以支持不同类型的编码:

req.on('end',  function(){ 
    if ('application/json' === req.headers['content-type']) {
        callback(JSON.parse(body)); 
    }
    else {
        callback(qs.parse(body));
    }
});