我无法在 mongodb 中创建多个用户
I can't create multiple user in mongodb
所以我正在我的网站上使用 MERN 中的护照构建一个身份验证系统。
所以注册用户等一切正常
但是当我尝试使用不同的凭据重新注册时,它不起作用。
有办法解决这个问题吗?
这是我的代码:
const Strategy = require('passport-local').Strategy
const mongoose = require('mongoose')
const User = require('../models/user');
const bcrypt = require('bcryptjs')
const salt = bcrypt.genSaltSync(10);
const SignupStrategy = new Strategy ({ passReqToCallback:true, usernameField: 'email' }, function(req, email, password, done){
User.findOne({email: req.body.email}).lean().exec((err, user) => {
if (err) {
return done(err, null);
}
if (!user) {
const encryptedPassword = bcrypt.hashSync(password, salt);
let newUser = new User({
email,
password: encryptedPassword,
first_name: req.body.first_name,
last_name: req.body.last_name,
date: req.body.date
})
newUser.save((error, inserted) => {
if (error) {
return done(error, null);
}
return done(null, inserted);
})
}
if (user) {
return done("User already exist", null);
}
})
});
module.exports = SignupStrategy;
没关系,我在多个项目中使用同一个 MongoDB 用户,并且我在多个项目中使用相同的集合,这就是它不起作用的原因。
所以我正在我的网站上使用 MERN 中的护照构建一个身份验证系统。
所以注册用户等一切正常
但是当我尝试使用不同的凭据重新注册时,它不起作用。
有办法解决这个问题吗?
这是我的代码:
const Strategy = require('passport-local').Strategy
const mongoose = require('mongoose')
const User = require('../models/user');
const bcrypt = require('bcryptjs')
const salt = bcrypt.genSaltSync(10);
const SignupStrategy = new Strategy ({ passReqToCallback:true, usernameField: 'email' }, function(req, email, password, done){
User.findOne({email: req.body.email}).lean().exec((err, user) => {
if (err) {
return done(err, null);
}
if (!user) {
const encryptedPassword = bcrypt.hashSync(password, salt);
let newUser = new User({
email,
password: encryptedPassword,
first_name: req.body.first_name,
last_name: req.body.last_name,
date: req.body.date
})
newUser.save((error, inserted) => {
if (error) {
return done(error, null);
}
return done(null, inserted);
})
}
if (user) {
return done("User already exist", null);
}
})
});
module.exports = SignupStrategy;
没关系,我在多个项目中使用同一个 MongoDB 用户,并且我在多个项目中使用相同的集合,这就是它不起作用的原因。