ich eine api haben (in NodeJS) Antwort, die ein Array zurückgibt:kann nicht durch JSON-Array iterieren
res.json(friends)
[
{
"id": 7795239,
"username": "janesmith"
},
{
"id": 1363327,
"username": "johnsmith"
}
]
Aber wenn ich durch das Array zu durchlaufen wollen, bevor diese Antwort zu senden, kann ich den Weg nicht finden um dies zu tun. users.length
existiert nicht, for(var key users)
funktioniert auch nicht.
Wie löst man das?
edit: der Code, wo es das Array bekommt:
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);
});
Dies ist das Protokoll Ergebnis für users
und err
users:
[
{
"_id": "5710b02c7787794009325f62",
"username": "demouser",
"__v": 0,
"friends":
[
{
"username": "janesmith",
"id": 7795239
},
{
"username": "johnsmith",
"id": 1363327
}
]
}
]
err: null
Dies ist das Protokoll des Schlüssels ist:
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
Können Sie eine Demo veröffentlichen, um das Problem zu reproduzieren? – elclanrs
Benötigen Sie mehr Code zu beantworten. Können Sie zeigen, wo Sie das Array zuweisen? – spongessuck
Wenn Sie diesen JSON (ohne natürlich die res.json (users)) in ein Objekt einlesen, sollten Sie in der Lage sein, ohne Probleme über seine Eigenschaften zu iterieren. – ManoDestra