我在node.js中有一个简单的循环:
exports.sample = function (req, res) {
var images = req.query.images;
images.forEach(function (img) {
console.log(img);
console.log(img.path, img.id);
console.log(img);
});
res.end();
};
结果是:
{"id":42,"path":"gGGfNIMGFK95mxQ66SfAHtYm.jpg"}
undefined undefined
{"id":42,"path":"gGGfNIMGFK95mxQ66SfAHtYm.jpg"}
我可以访问客户端的属性,但不能访问服务器端的属性。
有人可以帮我理解发生了什么吗?为什么我无法访问我的对象属性?
答案 0 :(得分:3)
正如其他人所指出的那样,img
很可能是字符串形式。您需要在其上运行JSON.parse()
以将其转换为对象,以便您可以访问其属性。
这里我在支票内写了JSON.parse(),即只有当img
的类型为#34;字符串"你应该解析它吗?但我认为,你总是将img
作为一个字符串,所以你可以简单地解析它而无需检查。
exports.sample = function (req, res) {
var images = req.query.images;
images.forEach(function (img) {
console.log(img);
//Here, this code parses the string as an object
if( typeof img === "string" )
img = JSON.parse( img );
console.log(img.path, img.id);
console.log(img);
});
res.end();
};