简体   繁体   English

为什么我得到未定义的对象,以及如何使用NodeJ解析json数据?

[英]why I'm getting undefined object and How do I parse json data with NodeJs?

My architecture is as follow: 我的架构如下:

  • The server side is NodeJs 服务器端是NodeJs

  • The client side is HTML & JavaScript & JSON 客户端是HTML&JavaScript&JSON

I'm trying to send some data from client to server, but the server always get invalid data. 我正在尝试将一些数据从客户端发送到服务器,但是服务器始终会获取无效数据。

Server: 服务器:

app.post('/process_post', urlencodedParser, function (req, res) {   
   console.log("Got POST (RES): " + res);
   console.log("Got POST (RES-BODT): " + res.body);
   res.sendFile( __dirname + "/" + "MyWeb.html" );
})

Client: 客户:

function onSubmit() {

    var xmlhttp;
    var result = '{"Q1":1,"Q2":3,"Q3":9}'                   
    xmlhttp=new XMLHttpRequest();
    xmlhttp.open("POST","~/process_post",true);
    xmlhttp.send(JSON.stringify(result));

    // same result when sending the next data:
    //xmlhttp.send("XYZ");
    return true;
}

but at the server side I'm always getting: 但是在服务器端,我总是得到:

Got POST (RES): [object Object]
Got POST (RES-BODT): undefined
  1. What am I missing ? 我想念什么?
  2. How can I get the parsed json data (Q1, Q2, Q3) at the server side ? 我如何在服务器端获取已解析的json数据(Q1,Q2,Q3)?

Thanks 谢谢

Use express body-parser, if you use express: https://github.com/expressjs/body-parser 如果使用express,请使用express正文解析器: https : //github.com/expressjs/body-parser

Add limit 50mb - for sending more date: app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); 添加限制50mb-用于发送更多日期: app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM