【发布时间】:2020-06-10 16:25:16
【问题描述】:
我初始化连接如下:
const {MongoClient} = require('mongodb').MongoClient;
let uri;
if(process.env.NODE_ENV === 'prod'){
console.log("running in prod");
uri = 'mongodb://[IP-Adress]:27017/';
} else {
console.log("running in dev");
uri = 'mongodb://localhost:27017/';
}
let isConnectionInitialized = false;
let client;
async function initializeConnection() {
client = await MongoClient.connect(uri);
isConnectionInitialized = true;
}
现在,当我像这样调用“insertOne()”时:
async function createXY(param1, param2, param3) {
if(!isConnectionInitialized){await initializeConnection();}
await client.db('xy').collection('xy').insertOne({
param1: param1,
param2: param2,
param3: param3
}, function (err) {
if (err) throw err;
return param1;
});
return 0;
}
它在 localhost 上工作(并且仍然工作),但在已部署的版本上出现错误。 我从 docker-compose 的日志中收到以下消息:
UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“insertOne”
现在,我不确定我是否完全理解连接到 mongoDB 的概念,但我认为我的错误在某个地方,但我无法弄清楚。我还认为这可能与我对 async/await 的理解有关。 任何帮助将不胜感激。
【问题讨论】:
标签: node.js mongodb async-await docker-compose database-connection