【问题标题】:Operation `users.insertOne()` buffering timed out after 10000ms in, Node.js, MongooseError操作 `users.insertOne()` 缓冲在 10000 毫秒后超时,Node.js,MongooseError
【发布时间】:2022-02-04 21:14:05
【问题描述】:

我正忙于创建一个项目,该项目允许用户输入“电子邮件”和“密码”来注册网站,

当我尝试使用“电子邮件”和“密码”输入用户进入此站点时,我收到以下错误:

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

未处理的拒绝 MongooseError:操作 users.findOne() 缓冲 10000ms 后超时

我已经尝试了我在此处找到的所有建议的解决方案,但存在类似问题,请删除 node_modules 文件夹并重新安装 mongoose。

请看下面我的代码,谢谢!

const express = require("express");
const bodyParser = require("body-parser");
const ejs = require("ejs");
const mongoose = require("mongoose");

const app = express();

app.use(express.static("public"));
app.set('view engine', 'ejs');

app.use( bodyParser.urlencoded ({extended: true}));

mongoose.connect = ("mongodb://localhost:27017/userDB", {useNewUrlParser: true, useUnifiedTopology: true});

const userSchema = {
  email: String,
  password: String
};

const User = new mongoose.model("User", userSchema);

app.get("/", function(req, res){
res.render("home")
});

app.get("/login", function(req, res){
res.render("login")
});

app.get("/register", function(req, res){
res.render("register")
});

app.post("/register", function(req, res){
const newUser = new User({
  email: req.body.username,
  password: req.body.password
  });
  newUser.save(function(err){
    if (err) {
      console.log(err);
    } else {
      res.render("secrets");
   }
 });
});

谁能帮帮我?

Atom images - Project SecretsCode

【问题讨论】:

  • 请提供控制器代码
  • 请看上面的代码,我似乎没有看到我的错误在哪里。谢谢
  • 用你自己的话说,mongoose.connect = (...) 行在做什么?
  • 我希望我有这个正确和清楚的,但是 mongoose.connect = (...),应该怎么做是连接到我的本地主机服务器?但是当我在端口 3000 上启动服务器并导航到注册屏幕时,插入所需的详细信息,我收到错误:MongooseError: Operation users.insertOne() buffering timed out after 10000ms Unhandled reject MongooseError: Operation users.findOne() buffering 10000 毫秒后超时
  • 您的互联网连接可能不够强,无法启动和保持数据库连接。这是我的经验。

标签: javascript node.js mongodb mongoose


【解决方案1】:

尝试在 mongoose.connect 大括号下再添加一行:-

mongoose.connect("monogodb://localhost....,{useNewUrlParser:true,
    useUnifiedTopology:true,
    useCreateIndex:true}).then(()=>{
console.log(`successfully connected`);
}).catch((e)=>{
console.log(`not connected`);
})

如果未连接,您可以通过将“未连接”替换为“e”来检查控制台中的错误

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,请确保您的 mongoDB 数据库用户名和密码是字母数字,没有特殊符号。并且不要添加这个:

        useUnifiedTopology:true,
        useCreateIndex:true}) ```
    simply write this:
    ```mongoose.connect(process.env.MONGO_URL,).then(()=>{
        console.log(`successfully connected`);
        }).catch((e)=>{
        console.log(`not connected`);
        }); ```
    

    【讨论】:

      【解决方案3】:

      由于某种原因我的 IP 地址改变了,所以我不得不在 Mongo DB 中更新它 - NetworkAccess - 编辑 - 使用新的 IP 地址,也许你会看到一个用当前 IP 或类似的东西更新的按钮,点击它

      【讨论】:

        【解决方案4】:

        试试这个:

            const userSchema = new mongoose.Schema({
                  email: String,
                  password: String
            });
            
            mongoose.model("User", userSchema);
            
            const User = mongoose.model("User");
        
        ///////
        
        app.post("/register", function(req, res){
        const newUser = new User({
          email: req.body.username,
          password: req.body.password
          });
          newUser.save(function(err){
            if (err) {
              console.log(err);
            } else {
              res.render("secrets");
           }
         });
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-02-26
          • 2021-08-23
          • 2021-10-15
          • 2021-11-15
          • 2021-12-08
          • 2021-04-01
          • 2021-06-30
          相关资源
          最近更新 更多