Mongoose TypeError: l’utilisateur n’est pas un constructeur

J’essaie d’append un sous-document à un schéma parent avec Mongoose et MongoDB, mais l’erreur suivante est générée:

TypeError: User is not a constructor 

Ceci est basé sur la documentation de Mongoose sur les sous – documents et je pense que tout est pareil. Comment puis-je déboguer plus loin?

Routeur

 // Add a destination to the DB router.post('/add', function(req, res, next) { let airport = req.body.destination let month = req.body.month let id = (req.user.id) User.findById(id , function (err, User) { if (err) return handleError(err) function addToCart (airport, month, id) { var user = new User ({ destinations: [( airport = '', month = '' )] }) dog.destinations[0].airport = airport dog.destinations[0].month = month dog.save(callback) res.status(200).send('added') } addToCart() }) console.log(airport) }) 

Schéma

 var destinationSchema = new Schema({ airport: Ssortingng, month: Ssortingng }) // Define the scheme var User = new Schema ({ firstName: { type: Ssortingng, index: true }, lastName: { type: Ssortingng, index: true }, email: { type: Ssortingng, index: true }, homeAirport: { type: Ssortingng, index: true }, destinations: [destinationSchema] }) User.plugin(passportLocalMongoose) module.exports = mongoose.model('User', User) 

JavaScript est sensible à la casse des noms de variables. Vous avez User modèle d’ User et le résultat d’ User avec le même nom.

Votre code fonctionnera avec le changement suivant:

  User.findById(id , function (err, user) { /* ^ use small `u` */ if (err) return handleError(err) /* rest of your code */ 

N’oubliez pas non plus que dans votre code, vous déclarez une autre variable nommée user . Vous devrez changer cela en quelque chose de différent.