スキーマをインスタンス化してモデルとして使用できないため、エラーがトリガーされています。 マングースモデル
にする必要があります 最初にmongoose.model('DocumentName', document)
。
たとえば(私は現在のプロジェクトからこれの一部をコピーパスタしているので、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 */ })
})