我有一台服务器如下:
app.post('/', function(req, res, next) {
console.log(req);
res.json({ message: 'pppppppppppppssssssssssssss ' });
});
请求从客户端发送:
$.ajax({
type: "POST",
url: self.serverURI,
data: JSON.stringify({ "a": "128", "b": "7" }),
dataType: 'json',
success: function (result) {
console.log(result);
},
error: function (xhr, ajaxOptions, thrownError) {
console.log(xhr);
}
});
到目前为止连接正常。
我的问题出在服务器上:
console.log(req);
我想要读取我发送的数据。如何阅读{ "a": "128", "b": "7" }
中的req
?
答案 0 :(得分:6)
虽然您没有提及它,但您的代码看起来像是为Express环境编写的。我的答案是针对这个。
确保对Express使用body-parser
。如果您的项目依赖于某些生成的样板代码,它很可能已经包含在您的主服务器脚本中。如果不是:
var bodyParser = require('body-parser');
app.use(bodyParser.json());
使用npm进行安装:npm install body-parser --save
然后可以通过req.body
:
app.post('/', function(req, res, next) {
console.log(req.body); // not a string, but your parsed JSON data
console.log(req.body.a); // etc.
// ...
});
答案 1 :(得分:2)
对于Express 4 +,
const express = require("express");
const app = express();
app.use(express.json());
然后,您可以按预期使用req.body
。
app.post("/api", (req, res) => {
/*
If the post request included { data: "foo" },
then you would access `data` like so:
*/
req.body.data
...
});