Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongooseError:操作`urls.find()`缓冲在10000毫秒后超时_Node.js_Database_Mongodb_Mongoose_Mongodb Query - Fatal编程技术网

Node.js MongooseError:操作`urls.find()`缓冲在10000毫秒后超时

Node.js MongooseError:操作`urls.find()`缓冲在10000毫秒后超时,node.js,database,mongodb,mongoose,mongodb-query,Node.js,Database,Mongodb,Mongoose,Mongodb Query,我试图发出一个post请求,将find数据保存在MongoDB中,或者创建一个,如果它不存在,那么我会得到如下错误 MongooseError: Operation `urls.find()` buffering timed out after 10000ms 我的main.js require("dotenv").config(); const express = require("express"); const cors = require

我试图发出一个post请求,将find数据保存在MongoDB中,或者创建一个,如果它不存在,那么我会得到如下错误

MongooseError: Operation `urls.find()` buffering timed out after 10000ms
我的main.js

    require("dotenv").config();
const express = require("express");
const cors = require("cors");
const app = express();
const bodyParser = require("body-parser");
const mongoose = require("mongoose");

// Basic Configuration
const port = process.env.PORT || 3000;

app.use(cors());

app.use("/public", express.static(`${process.cwd()}/public`));

app.get("/", function (req, res) {
  res.sendFile(process.cwd() + "/views/index.html");
});

// Your first API endpoint
app.get("/api/hello", function (req, res) {
  res.json({ greeting: "hello API" });
});

app.listen(port, function () {
  console.log(`Listening on port ${port}`);
});

mongoose.connect(
  process.env.MONGODB_CONNECT,
  {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useFindAndModify: false,
  },
  () => {
    console.log("Connected to mongoDB");
  }
);

let urlSchema = new mongoose.Schema({
  original: { type: String, required: true },
  short: Number,
});

let Url = mongoose.model("Url", urlSchema);
let responseObject = {};

app.post(
  "/api/shorturl/new",
  bodyParser.urlencoded({ extended: false }),
  (request, response) => {
    let inputUrl = request.body["url"];

    responseObject["original_url"] = inputUrl;

    let inputShort = 1;

    Url.findOne({})
      .sort({ short: "desc" })
      .exec((error, result) => {

       // THE ERROR APPEARS

        console.log(error);

        if (!error && result != undefined) {
          inputShort = result.short + 1;
        }
        if (!error) {
          Url.findOneAndUpdate(
            { original: inputUrl },
            { original: inputUrl, short: inputShort },
            { new: true, upsert: true },
            (error, savedUrl) => {
              if (!error) {
                responseObject["short_url"] = savedUrl.short;
                response.json(responseObject);
              }
            }
          );
        }
      });
  }
);
我的依赖关系

"body-parser": "^1.19.0",
"cors": "^2.8.5",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"mongoose": "^5.11.10"
我已经尝试了一些类似问题的解决方案,如:

  • 删除节点_模块文件并重新安装mongoose

  • 将MongoDB集群中的nodejs版本更改为 2.2.12或更高版本

  • 将我的IP更改为谷歌公共DNS 8888844


任何帮助都将不胜感激

我曾尝试设置一个新环境,并使用相同的MongoDB数据库,结果发现我的数据库获取问题可能是连接, 我尝试创建一个新项目,并在任何地方设置access,然后选择了离我家不远的服务器,现在一切正常。

问题出在哪里 如中所述,问题很可能是您没有运行本地主机数据库

如何修复
启动
mongod
mongo
进程。

你试过这个吗?我试过了,没用