Nodejs mongodb 的连接对象 异步加载的 如何导出给别的文件使用

Nodejs mongodb 的连接对象 异步加载的 如何导出给别的文件使用

我想把连接成功之后的 DB 对象 导出给别的文件使用,直接导出的话 会返回 undefine

var mongoClinet = require('mongodb').MongoClient
const DBLocationString = 'mongodb://localhost:27017/dzusers'

mongoClinet.connect(DBLocationString).then(function(db){
     //想在这里导出 db 对象给别的文件使用
     }).catch(err => console.log(err) )
}).catch(function(err){
    console.log(err)
})

package.json 写 "mongodb" 是不是就是用的 官方的 "node-mongodb-native"

mongodb 为了优化 用不用搞个连接池 还是 一直连接着数据库····


10 回复

js<br>// mongo-connector.js<br>export const getDb = mongoClinet.connect(DBLocationString)<br><br>// other-file.js<br>import { getDb } from './mongo-connector'<br>const db = await getDb<br>


额 这样岂不是每次都要 连接一次吗····会不会创建很多连接在内存里··

你导出来的是一个 Promise,所以只会连一次

感谢大佬耐心回答 萌新入坑 = - = 再去看看 JavaScript 语法了 敢问大佬 有什么好的 nodejs 的教程吗···

不算大佬,js 语法的话,推荐看阮一峰的教程 http://es6.ruanyifeng.com/

最近也在搞这个,貌似自带池子,官方给的建议好像也是开了就不要 close,楼主要知道了也 @我一下

好的 - 3 -

建议你去看一本叫做 《深入浅出 Node.js 》的书,你就对 Node 的异步 I/O 有了一个全新清楚的认识

买了···里面有些东西过时了 2013 年的把··· 在看了

在 Node.js 中连接 MongoDB 并异步加载连接对象,然后将该连接对象导出给别的文件使用,可以通过以下步骤实现。下面是一个示例:

  1. 创建一个 db.js 文件,用于管理 MongoDB 连接。
// db.js
const { MongoClient } = require('mongodb');

const uri = 'your_mongodb_uri_here'; // 替换为你的 MongoDB URI
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });

let dbConnection;

async function connectToDatabase() {
  if (!dbConnection) {
    dbConnection = await client.connect();
    console.log("Connected successfully to server");
    const db = client.db('your_database_name'); // 替换为你的数据库名称
    return db;
  }
  return dbConnection.db('your_database_name');
}

module.exports = connectToDatabase;
  1. 在需要使用数据库连接的文件中导入并使用这个连接函数。
// anotherFile.js
const connectToDatabase = require('./db');

(async () => {
  try {
    const db = await connectToDatabase();
    const collection = db.collection('your_collection_name'); // 替换为你的集合名称
    // 执行数据库操作
    const documents = await collection.find({}).toArray();
    console.log(documents);
  } catch (err) {
    console.error(err);
  } finally {
    // 在实际使用中,确保在应用程序关闭时关闭连接
    // await client.close();
  }
})();

这样,你就可以在 anotherFile.js 中使用从 db.js 导出的 connectToDatabase 函数来获取 MongoDB 连接对象并进行数据库操作。

回到顶部