MongooseError:操作 `users.createIndex()` 缓冲在 10000 毫秒后超时

问题描述 投票:0回答:0

我正在学习 MERN 堆栈教程,显然我是 MERN 堆栈(和猫鼬)的新手,现在我面临的问题是当我更改此行时

module.exports = mongoose.model("user", UserSchema);

在我的用户模式中使用这些

User = mongoose.model("user", UserSchema);
User.createIndexes({maxTimeMS: 30000});
module.exports = User;

我收到这个错误

MongooseError: Operation 
users.createIndex()
 buffering timed out after 10000ms

我的代码:

index.js

const connectToMongo = require("./db");
connectToMongo();
const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.use("/api/auth", require("./routes/auth"))
app.use("/api/notes", require("./routes/notes"))

app.listen(port, () => {
  console.log(`Example app listening on port http://127.0.0.1:${port}`)
})

db.js

const mongoose = require("mongoose");
const mongoURI = "mongodb://localhost:27017/notebook";
mongoose.set('strictQuery', true);

const connectToMongo = async () => {
    mongoose.connect(mongoURI, ()=>{
        console.log("Connected to Mongo SUCCESSFULLY")
    });
};

module.exports = connectToMongo;

用户模式

const mongoose = require("mongoose");
const { Schema } = mongoose;

const UserSchema = new Schema({
    name: {
        type: String,
        required: true
    },
    email: {
        type: String,
        required: true,
        unique: true
    },
    password: {
        type: String,
        required: true
    },
    timestamp: {
        type: Date,
        default: Date.now
    }
});
User = mongoose.model("user", UserSchema);
User.createIndexes({maxTimeMS: 30000});
module.exports = User;

auth.js

const express = require("express");
const User = require("../models/User");
const router = express.Router();
const { body, validationResult } = require("express-validator")

router.post("/api/auth",[
    body("name", "Enter a valid name").isLength({min: 3}),
    body("password", "Password must be atleast 8 characters long").isLength({min: 8}),
    body("email", "Enter a valid email").isEmail()
], (req, res) => {
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
      return res.status(400).json({ errors: errors.array() });
    }
    const user = User(req.body)
    user.create({
        name: req.body.username,
        email: req.body.username,
        password: req.body.password,
        timestamp: req.body.timestamp
      }).then(user => res.json(user)).catch(err=>{
        res.send("<h1> Please enter unique email (another user with this email already exists) </h1>")
      })
});

module.exports = router;

笔记架构

const mongoose = require("mongoose");
const { Schema } = mongoose;

const NotesSchema = new Schema({
    title: {
        type: String,
        required: true
    },
    description: {
        type: String,
        required: true,
        unique: true
    },
    tag: {
        type: String,
        default: "General"
    },
    date: {
        type: Date,
        default: Date.now
    }
});

module.exports = mongoose.model("notes", NotesSchema);
javascript mongoose mongoose-schema
© www.soinside.com 2019 - 2024. All rights reserved.