Express user.setPassword不是函数-passport local mongoose
我正在为我网站的用户在上实现重置密码功能。但是,当用户在reset.ejs页面确认新密码时,它似乎会抛出此错误 正在正确执行以下步骤:Express user.setPassword不是函数-passport local mongoose,express,mongoose,passport.js,Express,Mongoose,Passport.js,我正在为我网站的用户在上实现重置密码功能。但是,当用户在reset.ejs页面确认新密码时,它似乎会抛出此错误 正在正确执行以下步骤: 邮寄的代币 单击令牌时,新密码页面打开 当用户输入新密码并确认新密码并点击按钮保存新密码时,users.jsuser.setPassword中的函数不起作用,错误如下所述。这是passport local mongoose的内置功能 错误:user.savePassword不是函数 包括以下所有代码文件: users.js: 您似乎没有在用户模型下定义名为s
- 邮寄的代币
- 单击令牌时,新密码页面打开
user.setPassword
中的函数不起作用,错误如下所述。这是passport local mongoose的内置功能
错误:user.savePassword不是函数
包括以下所有代码文件:
users.js:
您似乎没有在用户模型下定义名为
setPassword
的方法。这主要是因为您没有将passport本地mongoose
插件到UserSchema
。添加UserSchema.plugin(passportLocalMongoose)在从UserSchema
创建模型之前,请执行code>。像这样
var mongoose = require('mongoose');
var bcrypt = require('bcryptjs');
var passportLocalMongoose=require("passport-local-mongoose");
mongoose.connect('mongodb://localhost/dataseed');
var db = mongoose.connection;
// User Schema
var UserSchema = mongoose.Schema({
username: {
type: String,
index: true
},
password: {
type: String
},
email: {
type: String
},
name: {
type: String
},
profileimage:{
type: String
},
as:{
type:String
},
institution:{
type:String
},
education:{
type:String
},
proffession:{
type:String
},
country:{
type:String
},
resetPasswordToken: String,
resetPasswordExpires: Date
});
UserSchema.plugin(passportLocalMongoose);
var User = module.exports = mongoose.model('User', UserSchema);
我正在学习上面提到的教程,在任何地方都找不到该函数。我遇到的错误与我在上面插入passportLocalMongoose时遇到的错误相同。嗨@TRomesh,我应该使用scryto而不是passportLocalMongoose吗?
var mongoose = require('mongoose');
var bcrypt = require('bcryptjs');
var passportLocalMongoose=require("passport-local-mongoose");
mongoose.connect('mongodb://localhost/dataseed');
var db = mongoose.connection;
// User Schema
var UserSchema = mongoose.Schema({
username: {
type: String,
index: true
},
password: {
type: String
},
email: {
type: String
},
name: {
type: String
},
profileimage:{
type: String
},
as:{
type:String
},
institution:{
type:String
},
education:{
type:String
},
proffession:{
type:String
},
country:{
type:String
},
resetPasswordToken: String,
resetPasswordExpires: Date
});
var User = module.exports = mongoose.model('User', UserSchema);
module.exports.getUserById = function(id, callback){
User.findById(id, callback);
}
module.exports.getUserByUsername = function(username, callback){
var query = {username: username};
User.findOne(query, callback);
}
module.exports.comparePassword = function(candidatePassword, hash, callback){
bcrypt.compare(candidatePassword, hash, function(err, isMatch) {
callback(null, isMatch);
});
}
module.exports.createUser = function(newUser, callback){
bcrypt.genSalt(10, function(err, salt) {
bcrypt.hash(newUser.password, salt, function(err, hash) {
newUser.password = hash;
newUser.save(callback);
});
});
}
var mongoose = require('mongoose');
var bcrypt = require('bcryptjs');
var passportLocalMongoose=require("passport-local-mongoose");
mongoose.connect('mongodb://localhost/dataseed');
var db = mongoose.connection;
// User Schema
var UserSchema = mongoose.Schema({
username: {
type: String,
index: true
},
password: {
type: String
},
email: {
type: String
},
name: {
type: String
},
profileimage:{
type: String
},
as:{
type:String
},
institution:{
type:String
},
education:{
type:String
},
proffession:{
type:String
},
country:{
type:String
},
resetPasswordToken: String,
resetPasswordExpires: Date
});
UserSchema.plugin(passportLocalMongoose);
var User = module.exports = mongoose.model('User', UserSchema);