我有一个 api(在 NODEJS 中)响应,它返回一个数组:
res.json(friends)
[
{
"id": 7795239,
"username": "janesmith"
},
{
"id": 1363327,
"username": "johnsmith"
}
]
但是,当我想在发送此响应之前迭代数组时,我找不到执行此操作的方法。users.length
不存在,for(var key users)
也不行。
怎么解决这个问题呢?
编辑:获取数组的代码:
User.find({}, function(err, users){
if(err) res.send(err);
var friends;
var result = 'this will hold the result';
for(var key in users){
if(users[key].username == req.decoded.username) {
friends = users[key].friends;
}
}
// here I want to do things with the list of friends, so this is the place where I need to iterate over it
res.json(result);
});
这是日志结果users
and err
users:
[
{
"_id": "5710b02c7787794009325f62",
"username": "demouser",
"__v": 0,
"friends":
[
{
"username": "janesmith",
"id": 7795239
},
{
"username": "johnsmith",
"id": 1363327
}
]
}
]
err: null
这是密钥的日志:
toObject
toJSON
items
db
discriminators
__v
id
_id
friends
password
username
userID
schema
collection
comparePassword
save
$__delta
$__version
increment
$__where
remove
model
$__buildDoc
init
$__storeShard
hook
pre
post
removePre
_lazySetupHooks
update
set
$__shouldModify
$__set
getValue
setValue
get
$__path
markModified
$__try
modifiedPaths
isModified
isDirectModified
isInit
isSelected
validate
invalidate
$__reset
$__dirty
$__setSchema
$__registerHooks
$__error
$__doQueue
$toObject
inspect
toString
equals
populate
populated
$__fullPath
domain
_events
_maxListeners
setMaxListeners
getMaxListeners
emit
addListener
on
once
removeListener
removeAllListeners
listeners
listenerCount