我遇到的問題是,貓鼬不讓我實例化一個不同於'pre'方法的模式類型的對象架構。Mongoose TypeError:實例化模式類型的對象時,對象不是函數
我有2個模式 - '用戶'和'Tickit'。
user.js的
var mongoose = require('mongoose');
var bcrypt = require('bcrypt-nodejs');
var Schema = mongoose.Schema;
var Tickit = require('../models/Tickit');
var userSchema = new Schema({
email : String,
password : String,
tickits : [Tickit.tickitSchema]
});
userSchema.methods.generateHash = function(password) {
return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
};
userSchema.methods.validPassword = function(password) {
return bcrypt.compareSync(password, this.password);
};
module.exports = mongoose.model('User', userSchema);
和Tickit.js
var mongoose = require('mongoose');
var User = require('../models/User');
var Schema = mongoose.Schema;
var tickitSchema = new Schema({
title: String,
description: String,
author : { type: Schema.Types.ObjectId, ref: 'User' },
comments: [{body:"string", by: mongoose.Schema.Types.ObjectId}]
});
tickitSchema.pre('save', function(next){
var user = new User();
user.tickits.push ({id:this._id});
user.save(function(err){
if(err)
res.send(err)
.populate('tickits')
.exec(function(err, blah){
if(err) res.send(err);
})
res.json(blah);
})
next();
})
module.exports = mongoose.model('Tickit', tickitSchema);
我嘗試在TickIT審覈預方法做的就是填充 'Tickits' 陣列在用戶模式與每次創建Tickit時該Tickit的ID。
然而,在我的應用程序,當我做創建TickIT審覈,該應用程序崩潰,我得到這個錯誤
var user = new User();
^
TypeError: object is not a function
你找到答案嗎? – Erez