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 获取这些数据,这将更加简单易行,也是一种更受欢迎的方式。