NodeJS - wie die Rückkehr der arrays in einem Modul
Habe ich ein Modul namens 'userinfo.js' abrufen von Informationen über Benutzer von der DB. Hier ist der code:
exports.getUserInfo = function(id){
db.collection("users", function (err, collection) {
var obj_id = BSON.ObjectID.createFromHexString(String(id));
collection.findOne({ _id: obj_id }, function (err, doc) {
if (doc) {
var profile = new Array();
profile['username']=doc.username;
return profile;
} else {
return false;
}
});
});
}
Aus index.js (controller für die index-Seite, von der aus ich versuche, auf userinfo) in einer solchen Art und Weise:
var userinfo = require('../userinfo.js');
var profile = userinfo.getUserInfo(req.currentUser._id);
console.log(profile['username']);
Knoten gibt mir so ein Fehler:
console.log(profile['username']); --> TypeError: Cannot read property 'username' of undefined
Was ich falsch mache? Vielen Dank im Voraus!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist der Rückkehr
profile['username']
nicht dieprofile
array selbst.Auch Sie konnten zurück
false
, so sollten Sie überprüfenprofile
vor dem Zugriff auf Sie.BEARBEITEN. Freu mich drüber wieder return-Anweisung ist innerhalb einer callback-Verschluss. Also deine Funktion ist wieder undefined. Eine mögliche Lösung, (halten mit Knoten die asynchronen Natur):
});
}
var x = userinfo.getUserInfo(...);
??