最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

未定义Mongoose userModel

IT培训 admin 4浏览 0评论

未定义Mongoose userModel

我对nodejs和mongoDB很新。我创建了一个注册和用户架构,但它无法识别this并发送以下错误:

ReferenceError:未定义userModel

当我跟踪错误时,我发现它无法识别此关键字。

这是user.js代码:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var bcrypt = require('bcrypt');

var userSchema = new Schema({
    teamName: {
        type: String,
        unique: true,
        trim: true,
        required: true
    },
    faculty: {
        type: String,
        required: true
    },
    email: {
        required: true,
        unique: true,
        trim: true,
        type: String
    },
    password: {
        required: true,
        type: String
    },
    score: {
        type: Number,
        default: 0
    }
});

userSchema.pre('save', function(next) {
    var user = this;
    bcrypt.hash(user.password, 10, (err, hash) => {
        if (err) return next(err)
        user.password = hash;
        next();
    });
})

var userModel = mongoose.model('User', userSchema);
module.exports = userModel;

server.js

router.post('/register', (req, res) => {
    var newUser = {
        teamName: req.body.teamName,
        faculty: req.body.faculty,
        email: req.body.email,
        password: req.body.password
    }
    userModel.create(newUser, (err, user) => {
        if (err) {
            console.log('[Registratoin]: ' + err);
        } else {
            console.log(user)
            console.log('[Registration]: Done');
            // req.session.userID = user._id;
            res.redirect('/scoreboard')
        }
    });
});
回答如下:

模型中预保存挂钩中的this关键字不是问题。

ReferenceError:未定义userModel

ReferenceError: "x" is not defined意味着userModel是你所称的范围内的undefined。 (因此,您引用的是不存在的值)

我把它包括在var userModel = require('the_path')

因为您需要并正确导出userModel。我会仔细检查你导入模块的路径。

未定义Mongoose userModel

我对nodejs和mongoDB很新。我创建了一个注册和用户架构,但它无法识别this并发送以下错误:

ReferenceError:未定义userModel

当我跟踪错误时,我发现它无法识别此关键字。

这是user.js代码:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var bcrypt = require('bcrypt');

var userSchema = new Schema({
    teamName: {
        type: String,
        unique: true,
        trim: true,
        required: true
    },
    faculty: {
        type: String,
        required: true
    },
    email: {
        required: true,
        unique: true,
        trim: true,
        type: String
    },
    password: {
        required: true,
        type: String
    },
    score: {
        type: Number,
        default: 0
    }
});

userSchema.pre('save', function(next) {
    var user = this;
    bcrypt.hash(user.password, 10, (err, hash) => {
        if (err) return next(err)
        user.password = hash;
        next();
    });
})

var userModel = mongoose.model('User', userSchema);
module.exports = userModel;

server.js

router.post('/register', (req, res) => {
    var newUser = {
        teamName: req.body.teamName,
        faculty: req.body.faculty,
        email: req.body.email,
        password: req.body.password
    }
    userModel.create(newUser, (err, user) => {
        if (err) {
            console.log('[Registratoin]: ' + err);
        } else {
            console.log(user)
            console.log('[Registration]: Done');
            // req.session.userID = user._id;
            res.redirect('/scoreboard')
        }
    });
});
回答如下:

模型中预保存挂钩中的this关键字不是问题。

ReferenceError:未定义userModel

ReferenceError: "x" is not defined意味着userModel是你所称的范围内的undefined。 (因此,您引用的是不存在的值)

我把它包括在var userModel = require('the_path')

因为您需要并正确导出userModel。我会仔细检查你导入模块的路径。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论