执行users.insertOne()时缓冲超时10000ms,注册仍失败的问题求助
执行users.insertOne()时缓冲超时10000ms,注册仍失败的问题求助
各位大佬好,我最近做用户注册功能的时候卡壳了,每次调用注册接口都会报缓冲超时10000ms的错误,注册流程完全走不通,实在找不到问题所在,麻烦帮忙看看!
先给大家说下报错情况:网站端返回500服务器错误,控制台具体提示MongoServerSelectionError: Server selection timed out after 10000 ms,应该是和MongoDB交互的时候出了问题。
这是我后端的authController.js文件里的注册逻辑代码:
const User = require('../models/User'); const bcrypt = require('bcryptjs'); const jwt = require('jsonwebtoken'); exports.register = async (req,res) => { try { const {username, email, password} = req.body; // 检查用户是否已存在 const existingUser = await User.findOne({ email }); if (existingUser) { return res.status(400).json({ message: '该邮箱已注册过账号' }); } // 加密用户密码 const salt = await bcrypt.genSalt(10); const hashedPassword = await bcrypt.hash(password, salt); // 创建新用户实例 const newUser = new User({ username, email, password: hashedPassword }); // 保存到数据库(这里应该就是触发超时的环节) await newUser.save(); // 生成JWT返回给前端 const token = jwt.sign( { id: newUser._id }, process.env.JWT_SECRET, { expiresIn: '30d' } ); res.status(201).json({ _id: newUser._id, username: newUser.username, email: newUser.email, token }); } catch (error) { console.error(error); res.status(500).json({ message: '服务器错误,注册失败' }); } };
我已经排查过的点:
- 本地MongoDB服务是正常运行的
- 数据库连接字符串配置看起来没问题
- 前端传参的格式也核对过,是正确的
有没有大佬能帮忙分析下,到底是哪里出了问题?比如是不是数据库连接的配置遗漏了什么,还是代码里的异步操作有问题?
内容来源于stack exchange
相关产品推荐
相关产品推荐

