未定义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
。我会仔细检查你导入模块的路径。