gpt4 book ai didi

javascript - MongoDB 在 promise 中包装 mongo 实例

转载 作者:可可西里 更新时间:2023-11-01 10:11:10 25 4
gpt4 key购买 nike

在 Web 应用程序上工作时,我想要一个可以在不同模块中重用的 MongoDB 单例连接。我使用 promise 来做到这一点。到目前为止,我尝试了以下方法:

Server.js

module.exports = new Promise ((res, rej) => {
let MongoDB;

MongoClient.connect('mongodb://localhost:27017/WIGAMEX',{poolSize: 30}, function(err, db) {
// console.log(db);
MongoDB = db;
});

if(MongoDB) {
res(db);
}

rej('no DB');
});

模块 1

const server = require('../server.js');

server.then( (db) => {console.log(db) });

它现在说:

TypeError: server.then is not a function

问题:

我做错了什么,我该如何让它发挥作用?

最佳答案

你做错了两件事


首先,您应该将返回值包含到连接回调中。

module.exports = new Promise ((res, rej) => {
MongoClient.connect('mongodb://localhost:27017/WIGAMEX',{
poolSize: 30,
}, function(err, db) {
if (err) {
return rej(err);
}

return res(db);
});
});

其次你返回的是一个 Promise 函数,你必须在解析它之前调用它

const server = require('../server.js');

server()
.then((db) => {
console.log(db)
})
.catch((err) => {
// treat error
});

关于javascript - MongoDB 在 promise 中包装 mongo 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50240021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com