【发布时间】:2021-09-08 14:40:01
【问题描述】:
我正在尝试使用 mongodb atlas 数据库对一个 Strapi 应用程序进行 dockerize。我面临的问题是 /config 中的数据库文件没有从 .env 文件中读取变量。
.env 文件
HOST=0.0.0.0
PORT=1337
DATABASE_HOST=xyz.mongodb.net
DATABASE_USERNAME=abc-admin
DATABASE_PASSWORD=12345xyz
ADMIN_JWT_SECRET=abcd1234
数据库连接代码
const {
DATABASE_HOST,
DATABASE_USERNAME,
DATABASE_PASSWORD
} = process.env;
module.exports = ({ env }) =>
({
defaultConnection: 'default',
connections: {
default: {
connector: 'mongoose',
settings: {
host: env('DATABASE_HOST', process.env.DATABASE_HOST),
srv: env.bool('DATABASE_SRV', true),
port: env.int('DATABASE_PORT', 27017),
database: env('DATABASE_NAME', 'xyz-dev'),
username: env('DATABASE_USERNAME', process.env.DATABASE_USERNAME),
password: env('DATABASE_PASSWORD', process.env.DATABASE_PASSWORD)
},
options: {
authenticationDatabase: env('AUTHENTICATION_DATABASE', null),
ssl: env.bool('DATABASE_SSL', true),
},
},
},
});
我已经尝试过使用 process.env 并且在上面的文件中没有它。但是当我在构建后运行图像时,它显示以下错误
error 连接到 Mongo 数据库时出错。 URI没有 主机名、域名和 tld
知道我在这里做错了什么吗?谢谢
【问题讨论】:
-
.env文件不会自动加载。您需要使用一些包才能将它们传递给节点。 -
好的,谢谢。我应该在哪里添加该代码?在我的数据库文件中?
标签: node.js mongodb docker strapi mongodb-atlas