2017-07-10 108 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