Express Query 对象未定义
Express Query object undefined
我有一个对象 postData 当我控制台记录它有数据的对象时,它以查询的形式进入控制器:-
console.log("data:- ", req.query.postData);
控制台输出:-
data:- {
"property1":"value1",
"property2":"value2",
"property3":"value3",
"property4":"value4"
}
但是当试图重组个体时属性:-
const {property1,property2,property3,property4} = req.query.postData;
console.log(property1);
console.log(property2);
console.log(property3);
console.log(property4);
控制台输出:-
控制台日志undefined
postData 只是一个字符串。您需要使用 JSON.parse()
将其转换为对象
const {property1,property2,property3,property4} = JSON.parse(req.query.postData);
不过,我认为在查询字符串中传递 JSON 并不是一个好主意。
** 相反,您可以在请求正文中发送它。
或者,对于查询字符串使用
?property1=value1&property2=value2&property3=value3&property4=value4
您获取的数据可能是类型字符串而不是对象,您需要先解析字符串然后再对其进行解构。
const {property1,property2,property3,property4} = JSON.parse(req.query.postData)
一般来说,req.query是一个字符串而不是一个对象。我建议您将请求从 GET
转换为 POST
并从 req.body
而不是 req.query
获取这些数据,这将更加简单易行,也是一种更受欢迎的方式。
我有一个对象 postData 当我控制台记录它有数据的对象时,它以查询的形式进入控制器:-
console.log("data:- ", req.query.postData);
控制台输出:-
data:- {
"property1":"value1",
"property2":"value2",
"property3":"value3",
"property4":"value4"
}
但是当试图重组个体时属性:-
const {property1,property2,property3,property4} = req.query.postData;
console.log(property1);
console.log(property2);
console.log(property3);
console.log(property4);
控制台输出:-
控制台日志undefined
postData 只是一个字符串。您需要使用 JSON.parse()
将其转换为对象const {property1,property2,property3,property4} = JSON.parse(req.query.postData);
不过,我认为在查询字符串中传递 JSON 并不是一个好主意。
** 相反,您可以在请求正文中发送它。
或者,对于查询字符串使用
?property1=value1&property2=value2&property3=value3&property4=value4
您获取的数据可能是类型字符串而不是对象,您需要先解析字符串然后再对其进行解构。
const {property1,property2,property3,property4} = JSON.parse(req.query.postData)
一般来说,req.query是一个字符串而不是一个对象。我建议您将请求从 GET
转换为 POST
并从 req.body
而不是 req.query
获取这些数据,这将更加简单易行,也是一种更受欢迎的方式。