我的問題的簡單版本是:如何訪問該物件的 hello world 部分:
{ '{"msg":"Hello World!"}': '' }
較長的介紹性版本是;我一直在嘗試發送和接收 postBody 物件,但我似乎無法從我發送的請求中訪問資料。
我想我錯過了一些簡單的東西,我從這里重新創建了一個請求,但我似乎無法訪問身體的“hello world”部分。
關于如何訪問內部物件以及可選提示和/或指標的答案將不勝感激。
發帖請求:
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
uj5u.com熱心網友回復:
JSON.stringify當你發送資料時你正在做。因此,當您收到它時,只需使用JSON.parse. 像這樣的東西
let data = JSON.parse(req.body);
現在你可以msg像這樣從你的身體訪問
console.log(data.msg);
這將回傳Hello World!
由于某種原因,您的情況似乎很奇怪,您的資料位于物件的鍵中,您可以像這樣訪問資料
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/461871.html
