node.js - 我无法在 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 用户,并且在多个项目中使用了同一个集合,这就是它不起作用的原因。
推荐阅读
- php - 如何将 html、php 页面链接到纤细的路由
- linux - Shell 脚本查找 .git 文件夹,然后运行 git branch 命令
- flutter - 如何更新 FutureProvider 中的值?
- c# - 在 IOS Xamarin 中评估 javaScrip
- angular - 如何修复 RangeError:将文档添加到 Firebase Firestore 时超出了最大调用堆栈大小
- python-3.x - 是否有 Python 语言功能可以使用不同(但已知)的参数组合调用函数?
- javascript - How to merge/call the results of 2 callback function into a new function javascript?
- c# - C# 函数指针/委托作为类字段
- r - 将波斯日期转换为公历日期(也逆转换)
- postgresql - 将外部 SQL 数据库连接到 orion 上下文代理