首页 > 解决方案 > 我无法在 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;

标签: node.jsreactjsmongodbpassport.js

解决方案


没关系,我在多个项目中使用同一个 MongoDB 用户,并且在多个项目中使用了同一个集合,这就是它不起作用的原因。


推荐阅读