MissingSchemaError: Schéma n'a pas été enregistré pour le modèle “Utilisateur”

Dans mon models/user.js fichier:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var userSchema = new Schema({
    (define schema)
});
...
(save user)
...
(check password)
...
mongoose.model('User', userSchema);

Et dans mon router/index.js, j'ai:

var mongoose = require('mongoose');
var User = mongoose.model('User');

qui génère l'erreur:

MissingSchemaError: Schema hasn't been registered for model "User".

Si toutefois, dans user.js, je suis dans la dernière ligne)

module.exports = mongoose.model('User', userSchema);

et dans index.js je ne var User = require('../models/User');, alors tout fonctionne.

Mais il ne faut pas, parce que dans config/pass.js je suis en train de faire var User = mongoose.model('User');, et il fonctionne parfaitement.

La require('../models/User'); syntaxe ne fonctionne pas sur Ubuntu, mais sur mon Mac.

Que dois-je faire? Comment puis-je résoudre ce problème? J'ai regardé des tonnes d'exemples d'applications, y compris MOYENNE mais rien n'a été vraiment utile.

  • J'ai rencontré un problème similaire, et même si la réponse de @verybadalloc a été utile, je voulais voir si je pouvais le résoudre d'une autre manière. Puis, quand j'ai défait mes modifications, il fonctionnait toujours. Alors, maintenant, je suis encore confus, mais votre question et la réponse aidé. J'ai essayé de changer mon exportations également d'exporter le schéma, et qui semblait l'aider, mais maintenant, je ne suis pas entièrement sûr de ce qui a fonctionné depuis abolir les changements ne semble pas avoir d'impact.
InformationsquelleAutor KGo | 2013-12-30