Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.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
Javascript mongo客户端:如何在单独的文件中重用客户端?_Javascript_Node.js_Mongodb_Mongodb Query_Mongodb Nodejs Driver - Fatal编程技术网

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

Javascript mongo客户端:如何在单独的文件中重用客户端?,javascript,node.js,mongodb,mongodb-query,mongodb-nodejs-driver,Javascript,Node.js,Mongodb,Mongodb Query,Mongodb Nodejs Driver,这里是db.js文件 const client = new MongoClient(DATABASE, mongodbOptions); const connectWithMongoDb = () => { client.connect((err) => { if (err) { throw err; } else { console.log('db connected'); } }); }; module.exports

这里是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函数。数据库连接成功。但问题是我不能重用
客户端
。例如,我想为集合创建一个单独的目录。(为了获得一个集合,我需要
client
object)

这是我的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 post后获得连接,才能在任何地方使用它

读-


在应用代码之后。我无法使用
mongoClient.db
我正在获取
无法读取null的属性db
@Ashik updated,请立即检查。现在,当我从另一个文件调用connectWithMongo(客户端)时。我得到
TypeError:client.connect不是一个函数
你可以检查这个:@Ashik现在检查,
const testConnection=getClient()。然后((连接)=>console.log(连接))块内的连接变量是db连接。
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 };