登录
注册
node.js 学习社区
mongoose 第二次操作数据库报错 说一旦编译就不能覆盖'user'模型

大男人主义

2017-02-18 21:17

RT,

定义模型代码:

	

var mongoose = require('mongoose'); mongoose.Promise = global.Promise; var db = mongoose.connect('mongodb://localhost:27017/books'); /* *mongoose模型 */ var mongoModel = { //用户信息 user : { phone : {type : String}, //手机号 pwd : {type : String}, //密码 nickname : {type : String, default : ''}, //昵称 avatar : {type : String, default : ''}, //头像地址 sex : {type : String, default : ''}, //性别 qq : {type : String, default : ''}, //QQ email : {type : String, default : ''}, //邮箱 rel_phone: {type : Array, default : []}, //关联账号 integral : {type : Number, default : 0}, //积分 money : {type : Array, default : []}, //各种财产余额 edit_time : {type : Number, default : new Date().getTime()} //修改时间 }, }; module.exports = function (model){ var modelObj = new mongoose.Schema(mongoModel[model],{_id : true}); return mongoose.model(model, modelObj); };

操作数据库代码:

router.all('/reg', function(req, res, next) {
    var post = req.body;
    //验证
    if(!fns.regExpPhone(post.phone)){
        res.send({code : 1,msg : '手机号格式不正确'});
    }else if(!post.verify){
        res.send({code : 1,msg : '验证码不能为空'});
    }else if(post.pwd.length < 6){
        res.send({code : 1,msg : '密码最少6位数'});
    }else if(post.pwd !=post.confirm_pwd){
        res.send({code : 1,msg : '两次输入密码不相同'});
    }else{
        //传入要操作的表
        var UserModel = Schema('user');
        //实例化mongoose模型
        var user = new UserModel();
        //查询手机号
        var FindPhone = new Promise(function(resolve,reject){
            UserModel.findOne({phone : post.phone},function(err,data){
                if(err){
                    res.send({code : 1,msg : '查询出错',err : err});
                    return;
                };
                resolve(data);
            });
        });

        //判断是否已存在
        FindPhone.then(function(info){
            if(info){
                res.send({code : 1,msg : '此号码已经存在'});
                return;
            };
            //不存在 保存到数据库
            user.phone = post.phone;
            user.pwd = post.pwd;
            user.save(function(err){
                if(err){
                    res.send({code : 1,msg : '注册失败'});
                    return;
                };
                res.send({code : 0,msg : '注册成功',uid : user._id});
            });
        });
    };


});
新人刚学node,请教各位大神

回复 · 1

  • //传入要操作的表

    var UserModel = Schema('user');

    //实例化mongoose模型

    var user = new UserModel();


    这个报的错么?应该是引入mongoose模型直接操作吧?

    0

发表回复

你可以在回复中 @ 其他人