【发布时间】:2021-04-06 16:12:36
【问题描述】:
mongoose 无法通过 docker mongodb 容器进行身份验证。 注意:mongo 在 docker 中,而我的 API 应用程序在 docker 之外。
码头工人撰写:
version: "3.7"
services:
db:
image: mongo:latest
environment:
MONGO_INITDB_ROOT_USERNAME: "${MONGO_USERNAME}"
MONGO_INITDB_ROOT_PASSWORD: "${MONGO_PASSWORD}"
MONGO_INITDB_DB: "${MONGO_DB}"
ports:
- 27017:27017
volumes:
- mongo_data:/data/db
volumes:
mongo_data:
.env:
MONGO_USERNAME=root
MONGO_PASSWORD=123456
MONGO_DB=nodeApp
db.js(数据库连接文件):
(async () => {
try {
const uri = `mongodb://127.0.0.1:27017/${process.env.MONGO_DB}`;
await mongoose.connect(uri, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
useCreateIndex: true,
user: process.env.MONGO_USERNAME,
pass: process.env.MONGO_PASSWORD,
});
console.log("Database connection completed successfully");
} catch (error) {
console.error(error);
}
})();
我可以通过用户名和密码使用 mongoose 连接到 mongo。
【问题讨论】:
-
编辑
/etc/mongod.conf的bindip以添加连接到mongo的IP地址。
标签: node.js mongodb docker mongoose