访问通过Ajax Post发送到NodeJS服务器的数据

Rai*_*ain 6 ajax jquery post node.js

如何通过Ajax POST访问发送到Nodejs服务器的数据?

    //Client
$.ajax( {
    url: '/getExp',
    data: 'Idk Whats Rc',
    type: 'POST',
});

//Server
app.post('/getExp', function(req, res){
    var data = req.???; //I want data to be equal to 'Idk Whats Rc'
}
Run Code Online (Sandbox Code Playgroud)

hex*_*ide 8

Express 4.x:

Express 4不再包含Connect作为依赖项,这意味着您需要单独安装正文解析模块.

解析器中间件可以在它自己的GitHub存储库中找到.它可以像这样安装:

npm install body-parser
Run Code Online (Sandbox Code Playgroud)

对于表单数据,这是中间件的使用方式:

var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded());
Run Code Online (Sandbox Code Playgroud)

对于Express 3.x及之前:

您需要使用bodyParser()Express中的中间件来解析HTTP请求的原始主体.然后填充中间件req.body.

app.use(express.bodyParser());
app.post('/path', function(req, res) {
  console.log(req.body);
});
Run Code Online (Sandbox Code Playgroud)

您可能希望将对象而不是字符串传递给POST请求,因为您当前拥有的内容将如下所示:

{ 'Idk Whats Rc': '' }
Run Code Online (Sandbox Code Playgroud)

使用代码有点像这样:

$.ajax({
  url: '/getExp',
  data: { str: 'Idk Whats Rc' },
  type: 'POST',
});
Run Code Online (Sandbox Code Playgroud)

会得到你这个:

{ str: 'Idk Whats Rc' }
Run Code Online (Sandbox Code Playgroud)