0

我从事一个项目,其代码分为多个 js 文件。到目前为止,我一直在调用MongoClient.connect()多次(在每个文件中使用 db)。那是我收到多个弃用警告的时候:

the options [servers] is not supported
the options [caseTranslate] is not supported
the options [dbName] is not supported
the options [srvHost] is not supported
the options [credentials] is not supported

我很快发现它与所有这些打开的连接有关。即使我可以将 MongoClient 存储在单独的文件中,我该如何存储MongoClient.connect(),因为使用数据库的代码如下所示:

MongoClient.connect((err) => {
    // code here
});

而不是这样:

MongoClient.connect()
// code here
4

1 回答 1

0

编辑:嗯,它似乎工作,但看起来文件的导出等于{}......


这个问题似乎可以通过将连接放在一个单独的文件中来解决(是的,我终于找到了怎么做!)。

mongoClient.js

require("dotenv").config();

// Declaring and configuring the mongoDB client
const { MongoClient } = require("mongodb");
const mongo = new MongoClient(process.env.MONGO_AUTH, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
});

mongo.connect((err, result) => { // note the 'result':

    // result == mongo ✅

    // Exports the connection
    module.exports = result;

    // Logs out if the process is killed
    process.on("SIGINT", function () {
        mongo.close();
    });
});

使用 db 的其他文件

const mongo = require("./mongoClient")

const collection = mongo.db("niceDB").collection("coolCollection")
collection.findOne({fancy: "document"}); // It works!

于 2020-07-31T14:43:28.720 回答