J'ai créé un module contenant un modèle mongoose (utilisateur) que je souhaite exporter. Pour l'instant, cela ne contient que le nom et l'âge des propriétés.Mongoose: déplacement des résultats find() vers un tableau dans le fichier
var mongoose = require('mongoose');
var db = mongoose.createConnection('localhost', 'moviemeter');
var schema = mongoose.Schema({name:String, age: Number});
var User = db.model('user', schema);
module.exports = User;
Ici, je voudrais acces ce modèle et trouver tous les objets qu'il contient. Ensuite, j'aimerais pouvoir remplir ma variable userArr avec tous les utilisateurs de ma base de données, mais même si le premier fichier console.log renvoie le nom de cet objet, il ne le place pas dans le tableau. Quelle est la raison de cela et comment puis-je résoudre ce problème?
// user module
var User = require('./modelModules/memberModel');
var userArr = [];
var users = User.find({}, function (err, users) {
console.log(users[0].name)
users.forEach(function(user) {
userArr.push = user;
});
});
console.log(userArr[0].name)
C'est un cas classique - _User.find_ est une opération asynchrone. Vous devez comprendre les concepts de base de la programmation asynchrone. Il n'est pas possible d'écrire du code procédural comme vous essayez de le faire avec async. Vos options utilisent Promises ou async/await. –
Merci, je vais jeter un oeil à ces sujets. Pourriez-vous recommander une bonne ressource d'apprentissage pour cela? –