Javascript 如何将JSON对象传递到node.js服务器

Javascript 如何将JSON对象传递到node.js服务器,javascript,json,node.js,Javascript,Json,Node.js,我有一个测试JSON对象,如下所示 { Id: 100, plugins: [{ Name: 'Test', Version: '2' }] } function postJSON() { $.ajax({ type: 'POST', url: 'features', data: json, dataType: 'json' }); } 这是我用 var json = {}; json.Id = 100; var plu

我有一个测试JSON对象,如下所示

{ Id: 100, plugins: [{ Name: 'Test', Version: '2' }] }
function postJSON() {
    $.ajax({
      type: 'POST',
      url: 'features',
      data: json,
      dataType: 'json'
    });
  }
这是我用

var json = {}; 
json.Id =  100;
var plugins = [];
json.plugins = plugins;
json.plugins.push({"Name" : "Test", "Version" : "2"});
我有一个客户端函数生成一个AJAX post请求,如下所示

{ Id: 100, plugins: [{ Name: 'Test', Version: '2' }] }
function postJSON() {
    $.ajax({
      type: 'POST',
      url: 'features',
      data: json,
      dataType: 'json'
    });
  }
我现在只需键入
console.log(req)
就可以在服务器上读取这些信息,但它似乎没有得到我的json对象

app.post("/features", function(req, res) {
    console.log(req);
})

谢谢你的帮助

只要安装了
bodyParser()
中间件,Express就会将JSON请求负载解析为
req.body

您的创建是错误的。JSON是基于键值的存储,这意味着它具有哈希的语法。试试这个:

var json = {}; 
json['Id'] =  100;
var plugins = [];
plugins.push({"Name" : "Test", "Version" : "2"});
json['plugins'] = plugins;

事实并非如此;他的身体很好。点符号和索引符号之间没有区别。哦,真的吗?按照我被教导的方式,我被告知这是正确的语法。我不知道你可以用两种不同的方法来做你被错误地教导了。只有在传递变量(
someObject[someVar]
)时,才应该使用索引器表示法。否则,您应该始终使用
。是的,Slaks是正确的。即使您的代码也会产生与我相同的JSON对象。您只需编写
var JSON={Id:100,插件:[{Name:'Test',Version:'2'}]}
谢谢!我犯了一个业余的错误,忘了添加bodyParser()P.S-我将根据用户安装的插件动态构建JSON对象,这仅用于说明目的