如何从节点js读取ajax请求的数据?

我试图从客户端发送数据到服务器(节点js)。 我正在使用ajax。

客户:

$("#test_button").on("click",function(){ //alert("shit"); $.ajax( {url: "http://localhost:4000/ajax_check", async: false, type: "POST", data: "{user:balayya,password:hero}", success: function(result){ alert("hooli"); }}); }); 

服务器:

 var app = require('express')(); var express = require('express'); var http = require('http').Server(app); http.listen(process.env.PORT || 4000, function() { console.log('listening on *:4000'); }); app.use(express.static('publuc')); app.get('/', function(req, res) { console.log("new entry page serving"); res.sendFile(__dirname + '/main.html'); }); app.post('/ajax_check', function(req, res){ console.log("someone came in here"); console.log(req.query.data); }); 

console.log()打印为“未定义”。 接收post请求的正确方法是什么,它是来自js节点中客户端的数据

使用这个npm包 – https://www.npmjs.com/package/body-parser

所以服务器站点parsing如下:request.body。{some field name}

尝试像这样:

 $.ajax({ url: "http://localhost:4000/ajax_check", type: "POST", data: { user: "balayya", password: "hero" }, success: function(result) { alert("hooli"); } }); 

并在服务器上使用req.body.param_name读取相应的参数值:

 app.post('/ajax_check', function(req, res){ console.log("someone came in here"); console.log(req.body.user); console.log(req.body.password); }); 

另外请注意,我已经从您的AJAX请求中删除了async: false ,因为每次有人将此属性设置为false ,可怜的小猫就会死亡。