gpt4 book ai didi

javascript - 无法向 Mongoose 查询返回的对象添加新属性

转载 作者:可可西里 更新时间:2023-11-01 09:57:03 24 4
gpt4 key购买 nike

<分区>

我正在使用 Node.js、MongoDB 和 Express 编写 API。我似乎无法向我正在迭代的位置对象添加新属性。

我根本不明白我的代码有什么问题。 loc 是一个普通对象,它应该可以工作。我错了吗?

// **********************************
// GET Locations
// **********************************
// Create endpoint /api/locations for GET

exports.getLocations = function(req, res) {

// Use the Location model to find all locations
// of a particular user

Location.find({}, function(err, locations) {
if (err)
res.send(err);
var counter = 0;
var l = locations.length;

//we create a closure to access the current location object
var closure = function(location) {

//we are returning the callback
return function(err, user) {
if (err)
res.send(err);
counter++;
console.log("The location object: \n"+location+"\n\n");

console.log("The value we want to add to the object: \n"+user.username+"\n\n");

//THAT DOESN'T WORK
location.username = user.username;

console.log("The updated object: \n"+location+"\n\n");

if(counter === l) res.json(locations);
};
};

//We respond with the locations
for (var i = 0; i < l; i++) {

//we call our function
User.findById(locations[i].userId, "username", closure(locations[i]));
}
});
};

这是我在控制台中得到的输出...这太奇怪了。

The location object:
{ _id: 54c65c665ff13962b6a367a1,
userId: '54c659ba8ac00324b617f3f9',
message: 'Big party here tonight!!',
longitude: 45.5,
latitude: 73.5667,
__v: 0 }


The value we want to add to the object:
test123


The updated object:
{ _id: 54c65c665ff13962b6a367a1,
userId: '54c659ba8ac00324b617f3f9',
message: 'Big party here tonight!!',
longitude: 45.5,
latitude: 73.5667,
__v: 0 }

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com