如何使用nodejs从http请求访问post对象
How to access post object from http request using nodejs
我的问题的简单版本是:如何访问此对象的 hello world 部分:
{ '{"msg":"Hello World!"}': '' }
较长的介绍性版本是;我一直在尝试发送和接收 postBody 对象,但我似乎无法访问我发送的请求中的数据。
我想我遗漏了一些简单的东西,我从 重新创建了一个请求,但我似乎无法访问正文的“hello world”部分。
关于如何访问内部对象的答案和可选提示 and/or 指针将不胜感激。
Post 请求:
var postData = JSON.stringify({ msg: "Hello World!" });
var options = {
hostname: "localhost",
port: 5000,
path: "/tester",
method: "GET",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"Content-Length": postData.length,
},
};
var req = http.request(options, (res) => {
console.log("statusCode:", res.statusCode);
console.log("headers:", res.headers);
res.on("data", (d) => {
// console.log("d", d)
process.stdout.write(d);
});
});
req.on("error", (e) => {
console.error(e);
});
req.write(postData);
req.end();
接收请求:
app.get("/tester", (req, res) => {
console.log("request fired");
console.log("body:", req.body);
let x = req.body
console.log(typeof x);
res.end();
});
日志:
request fired
body: { '{"msg":"Hello World!"}': '' }
object
您在发送数据时正在做 JSON.stringify
。所以当你收到它时,只需使用 JSON.parse
解析它。像这样
let data = JSON.parse(req.body);
现在您可以像这样从您的 body 访问 msg
console.log(data.msg);
这将 return Hello World!
由于某种原因,您的情况似乎很奇怪,您的数据在 object 的密钥中 您可以像这样访问数据
let data = {'{"msg":"Hello World!"}': ''}
console.log(JSON.parse(Object.keys(data)[0]).msg)
let stringifiedData = JSON.stringify({
msg: "Hello World!"
});
console.log(stringifiedData);
let parsedData = JSON.parse(stringifiedData);
console.log(parsedData.msg);
/* UPDATE */
let data = {
'{"msg":"Hello World!"}': ''
}
console.log(JSON.parse(Object.keys(data)[0]).msg)
我的问题的简单版本是:如何访问此对象的 hello world 部分:
{ '{"msg":"Hello World!"}': '' }
较长的介绍性版本是;我一直在尝试发送和接收 postBody 对象,但我似乎无法访问我发送的请求中的数据。
我想我遗漏了一些简单的东西,我从
关于如何访问内部对象的答案和可选提示 and/or 指针将不胜感激。
Post 请求:
var postData = JSON.stringify({ msg: "Hello World!" });
var options = {
hostname: "localhost",
port: 5000,
path: "/tester",
method: "GET",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"Content-Length": postData.length,
},
};
var req = http.request(options, (res) => {
console.log("statusCode:", res.statusCode);
console.log("headers:", res.headers);
res.on("data", (d) => {
// console.log("d", d)
process.stdout.write(d);
});
});
req.on("error", (e) => {
console.error(e);
});
req.write(postData);
req.end();
接收请求:
app.get("/tester", (req, res) => {
console.log("request fired");
console.log("body:", req.body);
let x = req.body
console.log(typeof x);
res.end();
});
日志:
request fired
body: { '{"msg":"Hello World!"}': '' }
object
您在发送数据时正在做 JSON.stringify
。所以当你收到它时,只需使用 JSON.parse
解析它。像这样
let data = JSON.parse(req.body);
现在您可以像这样从您的 body 访问 msg
console.log(data.msg);
这将 return Hello World!
由于某种原因,您的情况似乎很奇怪,您的数据在 object 的密钥中 您可以像这样访问数据
let data = {'{"msg":"Hello World!"}': ''}
console.log(JSON.parse(Object.keys(data)[0]).msg)
let stringifiedData = JSON.stringify({
msg: "Hello World!"
});
console.log(stringifiedData);
let parsedData = JSON.parse(stringifiedData);
console.log(parsedData.msg);
/* UPDATE */
let data = {
'{"msg":"Hello World!"}': ''
}
console.log(JSON.parse(Object.keys(data)[0]).msg)