MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Impossible d'instancier le schéma mangouste :l'objet n'est pas une fonction

L'erreur est déclenchée car un schéma ne peut pas être instancié et utilisé comme modèle. Vous devez en faire un modèle de mangouste d'abord avec mongoose.model('DocumentName', document) .

Par exemple (je copie une partie de ceci à partir d'un projet en cours, donc c'est ES6):

// user.js
import mongoose from 'mongoose'

let userSchema = mongoose.Schema({
    password: String,
    username: String
})

userSchema.methods.setUp = function (username, password) {
    this.username = username
    this.password = password
    return this
}

export let User = mongoose.model('User', userSchema)
export default User

// routes.js
import { User } from './models/user'

router.post('/newuser', function (req, res) {
    new User()
    // note the `setUp` method in user.js
    .setUp(req.params.username, req.params.password)
    .save()
    // using promises; you can also pass a callback
    // `function (err, user)` to save
    .then(() => { res.redirect('/') })
    .then(null, () => /* handle error */ })
})