Jes*_*sen 4 routes view mongoose mongodb node.js
在我的路线中,我试图在将它发送到我的视图之前替换我从数据库中获得的任何值。
在这种情况下,我试图用用户名替换对用户的引用。但是我的 console.log 只是保持返回值不变。
app.get('/message/inbox', function(req, res) {
var _id = req.user._id;
var inbox = null;
var users = null;
async.parallel([
function(callback){
Inbox.find({to: _id}, callback);
},
function(callback){
User.find({}, callback);
}
],
function(err, result){
inbox = result[0];
users = result[1];
for(var i = 0; i < inbox.length; i++) {
for(var j = 0; j < users.length; j++) {
if(String(inbox[i].from) == String(users[j]._id)) {
inbox[i].from = users[j].local.username;
console.log(users[j].local.username);
console.log(inbox[i].from);
break;
}
}
}
console.log(inbox);
});
});
Run Code Online (Sandbox Code Playgroud)
这是我的控制台返回的内容:
some@email.com
540468daeb56d5081ade600d
[ { _id: 54084cacf212815422aabe94,
from: 540468daeb56d5081ade600d,
to: 5406bf4c8a8acc88120922dc,
headline: 'Some Headline',
text: 'Some text',
__v: 0 } ]
Run Code Online (Sandbox Code Playgroud)
从查找请求返回的是一个“猫鼬文档”,它实际上非常复杂,包含关联模式中的所有规则和方法。您不能在架构上设置的约束之外修改它。
所以尽管序列化形式简单,对象却相当复杂。您想要的只是一个基本对象,因此您可以随意修改它。所以简单地说,只需调用.toObject()获取“原始”JavaScript 对象,而无需其他糖:
inbox = result[0].toObject();
users = result[0].toObject();
Run Code Online (Sandbox Code Playgroud)
基本对象没有方法也没有规则。修改掉。
| 归档时间: |
|
| 查看次数: |
2006 次 |
| 最近记录: |