MongoClient.connect 没有响应

2023-12-14

我正在尝试按照其网站上的官方教程将我的 Node.js (Express) 与我的 MongoDB 图集连接起来。

这是我的conn.js代码如下:

const { MongoClient } = require("mongodb");
const Db = process.env.ATLAS_URI;

let _db;

module.exports = {
  connectToServer: function (callback) {
    MongoClient.connect(
      Db,
      { useNewUrlParser: true, useUnifiedTopology: true },
      (err, db) => {
        console.log('THIS LOG IS NOT DISPLAYED')
        if (db) {
          _db = db.db("employees");
          console.log("Successfully connected to MongoDB");
        }
        return callback(err);
      }
    );
  },

  getDb: function () {
    return _db;
  },
};

Here is 服务器.js我从哪里调用 connectToServer() 函数conn.js

const express = require("express");
const app = express();

const cors = require("cors");
require("dotenv").config({ path: "./config.env" });

const port = process.env.PORT || 5000;

app.use(cors());
app.use(express.json());
app.use(require("./routes/record"));
const dbo = require("./db/conn");
 
app.listen(port, () => {
  // HERE IS WHERE I CALL THE FUNCTION
  dbo.connectToServer(err => {
    if (err) console.error(err);
  });
  console.log(`Server is running on port: ${port}`);
});

请注意,我收到“服务器正在端口:5000 上运行”消息,但没有收到“成功连接到 MongoDB”消息,也没有收到任何错误。

附:我将 MongoDB 网络访问设置为 0.0.0.0,以便任何 IP 地址都可以访问它。此外,如果我为 ATLAS_URI 提供了错误的用户名和密码,我会收到身份验证错误。


连接返回承诺,您可以像下面一样使用。

let _db;
const client = new MongoClient(Db, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

module.exports = {
  connectToServer: async (callback) => {
    await client.connect();
    console.log("Connected successfully to server");
    _db = client.db(dbName);
    console.log("Successfully connected to MongoDB");
  },

  getDb: function () {
    return _db;
  },
};

注意:如果需要,您可以更改顺序,首先连接到数据库,然后启动服务器。根据用例,它是完全可选的。

(async () => {
  try {
    await dbo.connectToServer();
    app.listen(port, async () => {
      // HERE IS WHERE I CALL THE FUNCTION
      console.log(`Server is running on port: ${port}`);
    });
  } catch (error) {
    console.log(error);
  }
})();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoClient.connect 没有响应 的相关文章

随机推荐