Mongoose.js exemple.save() rappel pas de tir
var mongo = require('mongoose');
var connection = mongo.createConnection('mongodb://127.0.0.1/test');
connection.on("error", function(errorObject){
console.log(errorObject);
console.log('ONERROR');
});
var Schema = mongo.Schema;
var BookSchema = new Schema({ title : {type : String, index : {unique : true}}});
var BookModel = mongo.model('abook', BookSchema);
var b = new BookModel({title : 'aaaaaa'});
b.save( function(e){
if(e){
console.log('error')
}else{
console.log('no error')
}});
Ni le "erreur", ou "pas d'erreur" sont imprimés sur le terminal. Quoi de plus le de connexion.sur "erreur" ne semble pas le feu non plus. J'ai confirmé que MongoDb est en cours d'exécution.
Vous devez vous connecter pour publier un commentaire.
c'est un cas où vous ajoutez le modèle global à la mangouste objet, mais de l'ouverture d'une connexion distincte
mongo.createConnection()
que les modèles ne sont pas partie de. Puisque le modèle n'a pas de connexion, il ne peut pas sauver de la db.ce problème est résolu soit en se connectant à mongo sur le monde de la mangouste connexion:
ou par l'ajout de modèles à votre connexion distincte:
mongo.model
àconnection.model
- je obtenirTypeError: Undefined type at 'paths.login' Did you try nesting Schemas? You can only nest using refs or arrays.
La posté réponse ne résout pas le problème. Malheureusement, je ne peux pas juste la mise à niveau de ma base de données, ce n'est donc pas une solution pour moi. Mais ici j'ai trouvé une solution à ce problème: https://github.com/Automattic/mongoose/issues/4064
Suffit d'utiliser
.$__save
au lieu de.save
comme indiqué:J'aime vraiment Aaron réponse, et grâce à lui, je suis maintenant sur ma façon de résoudre le problème... bien que je ne suis pas encore là! Voici ma question:
Je veux avoir mon schéma et les modèles définis dans des fichiers séparés, afin que je puisse les réutiliser dans d'autres projets. Ainsi, à titre d'exemple j'ai un fichier nommé W8DBItem.js comme suit:
Dans mon fichier de programme je le fais ceci:
Lorsque j'exécute ce programme, j'obtiens "Ici 1", mais jamais "Ici 2" ou "3" dans la console.
De Aaron post, je reçois que le W8DBItem objet n'a pas d'associé (et ouverte) de connexions, mais je ne suis pas sûr de savoir comment aller à fixer les choses. Je pourrais connecter à la DB dans le W8DBItem.js fichier, mais je n'aime vraiment pas le codage en dur des informations sur le serveur avec les objets - je veux que ces objets pour être utilisé dans des fichiers différents, et peut-être avec les différents serveurs.
Idées et suggestions sont appréciés!
[EDIT: SOLUTION TROUVÉE!!!]
Au lieu d'exporter ma mangouste.modèle à partir de mon fichier de l'objet, je suis seulement d'exporter le schéma:
Dans mon programme fichiers que je puis faire cela:
Fonctionne comme un charme. J'espère que cela aide quelqu'un!