Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 猫鼬保存到2集合_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

Javascript 猫鼬保存到2集合

Javascript 猫鼬保存到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:{

大家好,这次我真的需要帮助。它困扰了我多少天了

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 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);