2017-07-10 110 views
1

你好家伙我真的需要帮助这个。它被窃听我多少天猫鼬保存到2集合

模型/ user.js的

var UserSchema = mongoose.Schema({ 
username:{ 
    type: String, 
    unique: true, 
    index:true 
}, 
password:{ 
    type:String 
}, 
email:{ 
    type:String, 
    required: true 
    // unique: true 
}, 
authToken:{ 
    type: String, 
    required: true, 
    unique: true 
}, 
IsAuthenticated:{ 
    type: Boolean, 
    required: true 
}, 
name:{ 
    type:String 
}, 
field:{ 
    type:String 
}, 
e_money:{ 
    type:Number //this is the integer form in mongoose 
} 
}); 


//accesible variable from the outside 
var User = module.exports = mongoose.model('users', UserSchema); 

var InfoUser = module.exports = mongoose.model('infouser', UserSchema); 

以及如何拯救我是这样

var User = require('../models/user); 

var newUser = new User({ 
     name: name, 
     email: email, 
     authToken: authToken, 
     IsAuthenticated: false, 
     username: username, 
     password: password, 
     field: field, 
     e_money: e_money //temporary emoney 

    }); 

var newUser2 = new InfoUser({ 
     name: name, 
     email: email, 
     authToken: authToken, 
     IsAuthenticated: false, 
     username: username, 
     password: password, 
     field: field, 
     e_money: e_money //temporary emoney 

    }); 




     //save the newly created user to database 
    User.createUser(newUser,function(err, user){ 
     if(err) throw err; 
     console.log(user); 
    )}; 

    User.createUser(newUser2,function(err,user){ 
    if(err) throw err; 
     console.log(user); 
    )}; 

这是什么总是说,这个问题信息没有被定义。有人可以播放

回答

1

问题是,您通过相同的module.exports导出两个不同的型号。相反,我会建议您单独导出它们:

模型/ user.js的

// You can add instance methods like this: 
UserSchema.methods.createUser = function(user) { 
    // Whatever you want to do here 
}; 

var User = mongoose.model('users', UserSchema); 
var InfoUser = mongoose.model('infouser', UserSchema); 

exports.User = User; 
exports.InfoUser = InfoUser; 

/* 
    You could also do this as: 
    module.exports = { User: User, InfoUser: InfoUser }; 
*/ 

然后,当你想使用它们:

var User = require('../models/user').User; 
var InfoUser = require('../models/user').InfoUser; 
+0

我不能只是出口它像这个 'var InfoUser = module.exports = mongoose.model('infouser',UserSchema);'''有什么区别? – TheGinxx009

+0

问题是'module.exports'只导出一个对象(它是如何工作的),但是你正在尝试使用它两次。您可以使用命名的导出(我的示例的第一部分),将对象与模型一起导出为对象的属性(我的注释示例),或将它们分隔到不同的文件中。 –

+0

ow。谢谢你解释。我希望它能起作用。 – TheGinxx009