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 为了优化 用不用搞个连接池 还是 一直连接着数据库····
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 并异步加载连接对象,然后将该连接对象导出给别的文件使用,可以通过以下步骤实现。下面是一个示例:
- 创建一个
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;
- 在需要使用数据库连接的文件中导入并使用这个连接函数。
// 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 连接对象并进行数据库操作。