【问题标题】:const err = new MongooseError(message);const err = new MongooseError(message);
【发布时间】:2021-11-09 20:07:16
【问题描述】:

我正在尝试创建一个项目,允许用户输入“电子邮件”、“用户名”和“密码”来注册到该站点, 当我尝试使用“用户名”、“电子邮件”和“密码”输入用户进入此站点时,出现以下错误:

Backend server is running
not connected
C:\Users\odewo\chat-app\NODE-REST-API\node_modules\mongoose\lib\drivers\node-mongodb-native\collection.js:149
          const err = new MongooseError(message);
                      ^

MongooseError: Operation `users.insertOne()` buffering timed out after 10000ms
    at Timeout.<anonymous> (C:\Users\odewo\chat-app\NODE-REST-API\node_modules\mongoose\lib\drivers\node-mongodb-native\collection.js:149:23)
    at listOnTimeout (node:internal/timers:557:17)
    at processTimers (node:internal/timers:500:7)

下面是我的猫鼬代码:

mongoose.connect(process.env.MONGO_URL, {
  userNewUrlPaser: true,
  useUnifiedTopology: true,
  useCreateIndex: true,
})
  .then(() => {
    console.log('Connected to MongoDB');
  })
  .catch((e) => {
    console.log('not connected');
  });

这是路由的 auth.js 代码:

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

//  REGISTER
router.get('/register', async (req, res) => {
  const user = await new User({
    username: 'samson',
    email: 'samson@gmail.com',
    password: '123456',
  });

  await user.save();
  res.send('ok');
});
module.exports = router;

非常感谢您的帮助

【问题讨论】:

  • 使用以下代码,检查mongoose 连接:mongoose.connect(process.env.MONGO_URL, () =&gt; { console.log("connected to mongo..") });

标签: javascript node.js mongoose


【解决方案1】:

删除await 并不能解决问题。最好异步实现这个功能。您必须登录到您的 mongo 帐户并从 网络访问 部分添加您的 IP 地址。

【讨论】:

    【解决方案2】:

    你应该在新的用户声明之前删除等待,当你在等待像await user.save()这样的promise的结果时使用await

    【讨论】:

    • 即使我这样做了,它仍然没有连接到MongoDB......如果代码中有任何错误,请帮我检查mongoose连接
    猜你喜欢
    • 2022-08-17
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    相关资源
    最近更新 更多