Je me suis beaucoup battu avec ce projet. Je suis un tutoriel qui est obsolète dans certains domaines, par exemple, leur version de Jquery utilisait un format totalement différent pour certaines fonctions et je devais faire beaucoup de changements. Mais je pense qu'il me reste un dernier problème majeur pour lequel je n'arrive pas à trouver une solution. Dans ma variable de schéma, j'ai les types _id, nom d'utilisateur et mot de passe
var UserSchema = new mongoose.Schema({
_id: mongoose.Schema.ObjectId,
username: String,
password: String
});
mais lorsque j'essaie d'ajouter un nouvel utilisateur à mon application, au lieu de recevoir l'alerte que je suis censé recevoir, elle s'affiche sous la forme [object Object] et rien n'est ajouté à la base de données. Ensuite, cette erreur apparaît dans le mongo cmd
"Erreur: le document doit avoir un _id avant de sauvegarder".
J'ai essayé de commenter la ligne _id et je reçois le bon message, mais rien ne s'affiche dans ma base de données.
C'est assez simple:
Ce que vous ne pouvez pas faire, c'est de l'avoir dans le schéma et de ne pas l'initialiser. Il va jeter l'erreur dont vous parlez
Essayez l'extrait ci-dessous, je voulais nommer _id car userId vous pouvez aussi vous en passer.
var Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
var UserSchema = new Schema({
username: String,
password: String
});
UserSchema.virtual('userId').get(function(){
return this._id;
});
_id est ajouté automatiquement par MongoDb.
Si vous voulez conserver _id sur votre structure de données, assurez-vous d’initialiser correctement:
var obj = new UserSchema({
"_id": new ObjectID(),
"username": "Bill",
"password" : "...."
});