MongoDB创建新用户时触发Error code 8000问题求助
MongoDB Atlas 8000错误排查指引请求
我是MongoDB新手,存在术语盲区,排查问题时遇到困难。我搭建了一个简单的认证接口,数据库连接显示成功,但用Postman创建新用户时,每次都会触发500错误:
{ "message": "Error creating user", "error": { "ok": 0, "code": 8000, "codeName": "AtlasError", "name": "MongoError" } }
这个错误信息指向性不强,我试过谷歌搜索、查阅MongoDB文档,都没找到有效的排查方向。不确定问题出在代码还是MongoDB集群配置,但更倾向于集群设置问题(这部分我最陌生)。错误触发在app.js的register接口中user.save()的catch逻辑里。
相关代码片段如下:
.env文件(密码已隐藏)
DB_URL=mongodb+srv://emc_admin-prime:[PASSWORD]@cluster1.9ifxogd.mongodb.net/?retryWrites=true&w=majority
dbConnect.js
const mongoose = require("mongoose"); require('dotenv').config() async function dbConnect() { mongoose .connect( process.env.DB_URL, { useNewUrlParser: true, useUnifiedTopology: true, } ) .then(() => { console.log("Successfully connected to MongoDB Atlas!"); }) .catch((error) => { console.log("Unable to connect to MongoDB Atlas!"); console.error(error); }); } module.exports = dbConnect;
userModel.js
const mongoose = require("mongoose"); const UserSchema = new mongoose.Schema({ email: { type: String, required: [true, "Please provide an Email!"], unique: [true, "Email Exist"], }, password: { type: String, required: [true, "Please provide a password!"], unique: false, }, }); module.exports = mongoose.model.Users || mongoose.model("Users", UserSchema);
app.js
const express = require("express"); const app = express(); const bcrypt = require('bcrypt'); const bodyParser = require('body-parser'); const dbConnect = require('./db/dbConnect'); const User = require('./db/userModel'); dbConnect(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.get('/', (request, response, next) => { response.json({ message: 'Server response' }); next(); }); app.post('/register', (request, response) => { bcrypt.hash(request.body.password, 10) .then((hashedPassword) => { const user = new User({ email: request.body.email, password: hashedPassword, }); user .save() .then((result) => { response.status(201).send({ message: 'User created successfully', result, }); }) .catch((error) => { response.status(500).send({ message: 'Error creating user', error, }); }); }) .catch((error) => { response.status(500).send({ message: 'Password was not hashed successfully', error, }); }); }); module.exports = app;
排查方向需求
希望能得到以下方向的排查建议,不要直接给出答案:
- MongoDB Atlas集群配置层面的排查要点
- 代码中可能被忽略的细节排查方向
- 如何获取更详细的错误日志来定位问题
内容的提问来源于stack exchange,提问作者tganyan
相关产品推荐
相关产品推荐

