如何处理快递发送到服务器的数据?

时间:2018-07-14 01:09:16

标签: javascript node.js express post xmlhttprequest

我正在将这个发帖请求从我的index.js发送到我的app.js(在一次点击事件中):

var data = {
   name: "Sarah",
   age: "21"
};
var xhr = new XMLHttpRequest();
    xhr.open("POST", "/", true);
    xhr.setRequestHeader('Content-Type', 'application/json');
    xhr.send(JSON.stringify({
        data: data
    }));

然后在我的app.js中,我有这个:

app.post('/', function(req, res) {

    if(req.xhr) {
        console.log(req.body.name); 
    }

 });

但是控制台什么都没有记录,过一会儿吗?我也安装了身体解析器。缺少什么吗?

一段时间后,我也在控制台中收到此错误消息:

POST http://localhost:8080/ 0 ()

2 个答案:

答案 0 :(得分:0)

如果有条件,则无需添加 试试这个

app.post('/', function(req, res) { console.log(req.body.code);  });

答案 1 :(得分:0)

因此,根据评论,我在app.js中进行了更改:

app.post('/', function(req, res) {

    res.send(req.body.data);

});

然后进入我的index.js

var xhr = new XMLHttpRequest();
    xhr.open("POST", "/", true);
    xhr.setRequestHeader('Content-Type', 'application/json');
    xhr.send(JSON.stringify({
        data: data
    }));

    xhr.onreadystatechange = function(){
      if (xhr.readyState === XMLHttpRequest.DONE) {
        if (xhr.status === 200) {
          console.log(xhr.responseText);
        } else {
          alert('There was a problem with the request.');
        }
      }
    }

基本上,我最初缺少res.send()。发送该信息后,我便可以console.logindex.js进行回复了。