来自 MongoDB 的错误消息“操作‘disneys.insertOne()’缓冲在 10000 毫秒后超时" [英] Error Message from MongoDB "Operation `disneys.insertOne()` buffering timed out after 10000ms""

查看:72
本文介绍了来自 MongoDB 的错误消息“操作‘disneys.insertOne()’缓冲在 10000 毫秒后超时"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在使用 MongoDB 和 Express 创建一个新的 API,并且我目前遇到了这个问题操作 disneys.insertOne() 缓冲在 10000 毫秒后超时".我目前正在使用 route.rest 来测试我的 API.

但是,我不知道我目前做错了什么,有人可以看看我的 Github 存储库 ?

这是我设置 API 调用的方式:

<预><代码>const express = require(express");const router = express.Router();const Disney = require("../models/disneyCharacter");//获取所有字符router.get("/", async (req, res) => {尝试 {const 字符 = 等待 Disney.find();res.json(字符);} 抓住(错误){res.status(500).json({ message: err.message });}});//获取一个字符router.get("/:id", getCharacter, (req, res) => {res.json(res.character);});//创建新角色router.post("/", async (req, res) => {const 字符 = 新迪斯尼({名称:req.body.name,详细信息:req.body.details,});尝试 {const newCharacter = await character.save();res.status(201).json({ newCharacter });} 抓住(错误){res.status(400).json({ message: err.message });}});//更新一个字符router.patch("/:id", getCharacter, async (req, res) => {if (req.body.name != null) {res.character.name = req.body.name;}如果(req.body.details != null){res.character.details = req.body.details;}尝试 {const updateCharacter = await res.character.save();res.json(updateCharacter);} 抓住(错误){res.status(400).json({ message: err.message });}});//删除一个字符router.delete("/:id", getCharacter, async (req, res) => {尝试 {等待 res.character.remove();res.json({ 消息:已删除字符"});} 抓住(错误){res.status(500).json({ message: err.message });}});异步函数 getCharacter(req, res, next) {让性格;尝试 {character = await character.findById(req.params.id);如果(字符==空){return res.status(404).json({ message: "Cannot find character" });}} 抓住(错误){返回 res.status(500).json({ message: err.message });}res.character = 字符;下一个();}module.exports = 路由器;

我的参数如下:

const mongoose = require("mongoose");const disneyCharacter = new mongoose.Schema({姓名: {类型:字符串,要求:假,},细节: {类型:字符串,要求:假,},订阅日期:{类型:日期,要求:真实,默认:Date.now,},});module.exports = mongoose.model(迪士尼", disneyCharacter);

这是我的 API 调用:

<预><代码>发布 http://localhost:3000/disneyCharacter内容类型:应用程序/json{名称":米老鼠",细节":迪斯尼的第一个角色"}

如果您有任何其他问题或疑虑,请告诉我.

解决方案

试试这个如何解决猫鼬v5.11.0 model.find() 错误:操作 `products.find()` 缓冲在 10000 毫秒后超时

另外,你的API调用好像有问题,应该是disneyCharacters而不是disneyCharacter.

另外,可能先设置一个本地数据库,而不是使用 process.env.DATABASE_URL.

I'm currently creating a new API with MongoDB and Express, and I'm currently having this issue "Operation disneys.insertOne() buffering timed out after 10000ms." I'm currently using route.rest to test my API.

However, I don't know what I'm currently doing wrong, could someone take a look at my Github Repository ?

This is the way that I setup my API calls:


const express = require("express");
const router = express.Router();
const Disney = require("../models/disneyCharacter");

// Getting all character

router.get("/", async (req, res) => {
  try {
    const character = await Disney.find();
    res.json(character);
  } catch (err) {
    res.status(500).json({ message: err.message });
  }
});
// Getting one Character
router.get("/:id", getCharacter, (req, res) => {
  res.json(res.character);
});

// Creating new Character
router.post("/", async (req, res) => {
  const character = new Disney({
    name: req.body.name,
    details: req.body.details,
  });
  try {
    const newCharacter = await character.save();
    res.status(201).json({ newCharacter });
  } catch (err) {
    res.status(400).json({ message: err.message });
  }
});

// Updating one character
router.patch("/:id", getCharacter, async (req, res) => {
  if (req.body.name != null) {
    res.character.name = req.body.name;
  }
  if (req.body.details != null) {
    res.character.details = req.body.details;
  }
  try {
    const updateCharacter = await res.character.save();
    res.json(updateCharacter);
  } catch (err) {
    res.status(400).json({ message: err.message });
  }
});

// Deleting one character
router.delete("/:id", getCharacter, async (req, res) => {
  try {
    await res.character.remove();
    res.json({ message: "Deleted character" });
  } catch (err) {
    res.status(500).json({ message: err.message });
  }
});

async function getCharacter(req, res, next) {
  let character;
  try {
    character = await character.findById(req.params.id);
    if (character == null) {
      return res.status(404).json({ message: "Cannot find character" });
    }
  } catch (err) {
    return res.status(500).json({ message: err.message });
  }

  res.character = character;
  next();
}

module.exports = router;


My parameters are the following:

const mongoose = require("mongoose");

const disneyCharacter = new mongoose.Schema({
  name: {
    type: String,
    required: false,
  },
  details: {
    type: String,
    required: false,
  },
  subscribeDate: {
    type: Date,
    required: true,
    default: Date.now,
  },
});

module.exports = mongoose.model("Disney", disneyCharacter);

This is my API call:


Post http://localhost:3000/disneyCharacter
Content-Type: application/json

{
    "name": "Mickey Mouse",
    "details": "First Character from Disney"
}

Please let me know if you have any other questions or concerns.

解决方案

try this out How to solve Mongoose v5.11.0 model.find() error: Operation `products.find()` buffering timed out after 10000ms"

Also, your API call seem to have a problem, It should be disneyCharacters instead of disneyCharacter.

Also, probably setup a local database first instead of using process.env.DATABASE_URL.

这篇关于来自 MongoDB 的错误消息“操作‘disneys.insertOne()’缓冲在 10000 毫秒后超时"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆