Javascript 猫鼬保存到2集合
大家好,这次我真的需要帮助。它困扰了我多少天了 model/user.jsJavascript 猫鼬保存到2集合,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,大家好,这次我真的需要帮助。它困扰了我多少天了 model/user.js var UserSchema = mongoose.Schema({ username:{ type: String, unique: true, index:true }, password:{ type:String }, email:{ type:String, required: true // unique: true }, authToken:{
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);
)};
// 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 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);
)};
// 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 };
*/
问题是它总是说信息用户没有定义。是否有人可以试一试问题是您正在通过同一个
模块导出两个不同的型号。导出
。相反,我建议您单独导出它们:
model/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);
)};
// 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;
我不能这样导出它吗
var InfoUser=module.exports=mongoose.model('InfoUser',UserSchema)代码>有什么区别?问题是module.exports
只导出一个对象(这就是它的工作方式),但您尝试使用它两次。您可以使用命名导出(我的示例的第一部分),将模型作为对象属性导出对象(我的注释示例),或者将它们分离到不同的文件中。它表示InfoUser.createUser不是函数:(是的,createUser不是mongoose的默认函数。请参阅我的编辑以了解如何添加实例方法(像createUser)。如果您只想将实例保存到数据库中,我只需要使用.save()
,所以它就像newUser.save()
现在它说不能读取未定义的属性“createUser”。我这样做InfoUser.methods.createUser(newUser2,function(err,user){If(err)throw err;console.log(user);});//将新创建的用户保存到数据库user.methods.createUser(newUser,function(err,user){if(err)throw err;console.log(user);