MongooseError: время буферизации операции `users.findOne ()` истекло через 10000 мс

Это мой файл подключения


const connectDB = async () =>{
        const conn = await new mongoose("mongodb+srv://nikunj:[email protected]/myFirstDatabase?retryWrites=true&w=majority",
        {
            usenewurlparser:true,
            usecreateindex:true,
            usefindmodify:true,
            useunifiedtropology:true,
            urlencoded:true
        })
}
module.exports = connectDB;

это файл моей модели


const userSchema = new mongoose.Schema({
    username:{
        type:String,
        required:true
    },
    avatar:{
        type:String,
    },
    email:{
        type:String,
        required:true
    },
    password:{
      type  : String,
     required:true
    }
});
module.exports = mongoose.model('user',userSchema);

этот файл будет вставлять или брать информацию из базы данных для регистрации

const express = require('express');
const router = express.Router();
const User = require('../models/user');
const bcrypt= require('bcrypt');

router.post('/register',async(req,res,next)=>{
    const  {username,email,password}=req.body;
    try{
        let user_exist = await User.findOne({email:email});
        if (user_exist){
            success = "false";
            msg = "user already exist";
        } else {
            //importing data to models
            let user = new User();
            user.username = username;
            user.email = email ;
            const salt = await bcrypt.genSalt(10);
            user.password =  await bcrypt.hash(password,salt),
            user.avatar =  "https://gravatar.com/avatar/?s=200&d=retro"
            await user.save();
            res.json({
                sucess:true,
                user:user,
                msg:"user registered"
            })
        }
    }
    catch(err){
        console.info(err);
    }
});

module.exports = router;

это мой основной файл (server.js)

const express = require('express');
const morgan = require('morgan');
const colors = require('colors');
const dotenv = require('dotenv');
const mongoose = require('mongoose');
const connectDB = require('./config/db');
//creating main platform
connectDB;
console.info(mongoose.connection.readyState);
const app = express();
app.use(morgan('dev'));
dotenv.config({
    path:'./config/config.env'
})
app.use(express.json({}))
app.use(express.json({
    extended:true
}))

//creating server
app.use('/api/todo/auth',require('./routes/user'));
const Port = process.env.port;
app.listen(Port,
    console.info(`listening on port :${Port}` .red.underline.bold));
//creating req,res platform

но после запуска он показывает ошибку при отправке почтового запроса

MongooseError: Operation `users.findOne()` buffering timed out after 10000ms
    at Timeout.<anonymous> (D:\nikunj\Programming\todoapp\node_modules\mongoose\lib\drivers\node-mongodb-native\collection.js:185:20)
    at listOnTimeout (node:internal/timers:556:17)
    at processTimers (node:internal/timers:499:7)

Пожалуйста, найдите решение для этого. спасибо. извините, если это глупый или неправильный вопрос, потому что я новичок в этом nodejs

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
35
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Подключитесь к своей базе данных первым, а затем запустите свой сервер.

Вы пытаетесь запросить базу данных, не подключаясь к ней.

https://mongoosejs.com/docs/connections.html#buffering

Mongoose lets you start using your models immediately, without waiting for mongoose to establish a connection to MongoDB.

That's because mongoose buffers model function calls internally. This buffering is convenient, but also a common source of confusion. Mongoose will not throw any errors by default if you use a model without connecting.


connectDB()
    .then(() -> {
        app.listen(Port, console.info(`listening on port :${Port}` .red.underline.bold));
    }).catch((e) => {
        console.info(e);
    })

Вы не вызываете функцию connectDB

Включите сервер Mongo и подключитесь к своей базе данных, прежде чем пытаться писать на нее.

Другие вопросы по теме