节点环境抛出UnhandledPromiseRejectionWarning

时间:2019-11-28 12:52:52

标签: node.js reactjs mongodb express mongoose

我有一个节点后端,试图通过mongoose软件包建立与mongodb集群的连接。

使用nodemon时,我的node.js / express服务器运行,但从未建立与mongodb的连接,几秒钟后,抛出 UnhandledPromiseRejectionWarning:MongoTimeoutError:服务器选择在30000毫秒后超时

我真的不知道如何解决这个问题,显然我没有按照我的逻辑处理承诺诺言,有人可以帮助我解决这个问题吗?

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

require("dotenv").config();

const app = express();
const port = 5000;

//cors middleware
app.use(cors);
app.use(express.json());

const uri = process.env.ATLAS_URI;
//useNewUrlParser parsing mongodb string
mongoose.connect(uri, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  useCreateIndex: true
});
mongoose.Promise = global.Promise;
const connection = mongoose.connection;
connection.once("open", () => {
  console.log("MONGODB connection established");
});

const exereciseRouter = require("./routes/exercises");
const usersRouter = require("./routes/users");

app.use("/exercises", exereciseRouter);
app.use("/users", usersRouter);

app.listen(port, () => {
  console.log("server listening on", port);
});


1 个答案:

答案 0 :(得分:0)

从mongoDB连接中删除useUnifiedTopology: true

此问题已经讨论过here