微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mongo 客户端:如何在单独的文件中重用客户端?

如何解决mongo 客户端:如何在单独的文件中重用客户端?

这里是 db.js 文件


const client = new MongoClient(DATABASE,mongodbOptions);

const connectWithMongoDb = () => {
  client.connect((err) => {
    if (err) {
      throw err;
    } else {
      console.log('db connected');
    }
  });
};

module.exports = { client,connectWithMongoDb };

我从我的 server.js 调用了 connectWithMongoDb 函数。 db 连接成功。但问题是我不能重复使用 client。例如,我想为集合创建一个单独的目录。 (为了获得一个集合,我需要 client 对象)

所以,这是我的 collection.js 文件

const { client } = require('../helpers/db-helper/db');

exports.collection = client.db('organicdb').collection('products');

但是这个文件(collection.js)一被调用就会出现问题。

我收到此错误

throw new MongoError('MongoClient must be connected before calling MongoClient.prototype.db'

解决方法

你必须在连接到 MongoDB 后获得连接,你可以在任何地方使用它。

阅读 - https://mongodb.github.io/node-mongodb-native/api-generated/mongoclient.html

let client;

async function connect() {
    if (!client) {
        client = await MongoClient.connect(DATABASE,mongodbOptions)
        .catch(err => { console.log(err); });
    }
    return client;
}

conet getConectedClient = () => client;  

const testConnection = connect()
    .then((connection) => console.log(connection)); // call the function like this


module.exports = { connect,getConectedClient };

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。