Javascript 在Node.JS中发布和解码Json

Javascript 在Node.JS中发布和解码Json,javascript,json,node.js,Javascript,Json,Node.js,我正在尝试将关联数组发布到另一个node.js服务器,内部发布到我的服务器: 第一个服务器使用如下方式发布请求 第二个服务器结果是: { '{"isposted":{"ok":"val"}}': '' } 而不是: {"isposted":{"ok":"val"}} 解析数据的服务器(第二个)源代码如下: var http=require('http'); var qs=要求('qs'); var processRequest=函数(请求,回调){ 变量体=“”; 请求on('data',

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

第一个服务器使用如下方式发布请求

第二个服务器结果是:

{ '{"isposted":{"ok":"val"}}': '' }
而不是:

{"isposted":{"ok":"val"}}
解析数据的服务器(第二个)源代码如下:

var http=require('http');
var qs=要求('qs');
var processRequest=函数(请求,回调){
变量体=“”;
请求on('data',函数(data){body+=data;});
on('end',function(){callback(qs.parse(body));});
}
var server2=http.createServer(函数(req,res){
processRequest(请求、功能(数据){
尝试
{
data=JSON.parse(data.jsonData);
}
捕获(e)
{
数据=数据;
}
控制台日志(数据);
});
});
解码JSON的包是错误的:
回调(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));
    }
});

有人编辑了我的帖子,删除了重要的信息……现在人们投票反对了,因为编辑毫无意义。对不起,我错过了第一次编辑的一个部分——你回滚的最后一次编辑包含了你原来帖子的所有信息,但格式良好的请求代码中有一个额外的
}
,我也不知道请求是从哪里来的。可能您需要一些模块,但是哪一个模块以及它的代码在哪里?如果你不创造,就很难帮助你。(我甚至还没有看过服务器的一半)谢谢,它正在工作!但是我还需要qs.parse来解码作为GET发布的数据,我如何决定它应该用JSON还是qs进行解析?例如,您可以使用并根据
内容类型
-header来决定,这是推荐的方法。谢谢,但我没有使用express,我不知道如何确定内容类型。我想它是在res[“_header”]中声明的,但似乎很难从itNevermind中提取内容类型,我发现使用req.headers['content-type']
req.on('end',  function(){ 
    if ('application/json' === req.headers['content-type']) {
        callback(JSON.parse(body)); 
    }
    else {
        callback(qs.parse(body));
    }
});