无法读取泊坞窗环境文件的内容的Node.js
问题描述:
我在泊坞窗,撰写文件中指定的文件包膜accounts.env:无法读取泊坞窗环境文件的内容的Node.js
version: "3.3"
services:
web:
env_file: accounts.env
build:
context: .
dockerfile: Dockerfile.test
depends_on:
- mysql
volumes:
- .:/app
- /app/node_modules
ports:
- 3000:3000
mysql:
image: mysql:5.5
environment:
- MYSQL_ROOT_PASSWORD=***
- MYSQL_DATABASE=***
- MYSQL_USER=***
- MYSQL_PASSWORD=***
ports:
- 3306:3306
migrations:
image: micheleminno/db-migrations:latest
environment:
- NODE_ENV=development
depends_on:
- mysql
这是ENV文件:
accountSize = 28
user1screenName = ***
...
这里是一个Node.js代码的例子,我在这里读取env文件中定义的一些环境变量:
...
if (credentialsIndex < process.env.accountSize) {
...
我的问题是对象process.env不包含我指定的变量。有谁知道为什么?
答
这里有两件事。如果我运行下面的撰写文件
version: "3.3"
services:
web:
env_file: accounts.env
image: node
command: node -e 'console.log(process.env);'
输出是
web_1 | { PATH: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
web_1 | HOSTNAME: 'd207b3388203',
web_1 | 'user1screenName ': ' tarun',
web_1 | 'accountSize ': ' 28',
web_1 | NPM_CONFIG_LOGLEVEL: 'info',
web_1 | NODE_VERSION: '8.3.0',
web_1 | YARN_VERSION: '0.27.5',
web_1 | HOME: '/root' }
正如你可以看到accountSize
会得到一个空间,你一个=
,也是环境的名称后添加accountSize
与最后一个空间。这意味着您需要使用process.env["accountSize "]
访问它。无论如何修复环境文件,前后没有空间。
你有没有试过在'.env'文件中去掉'='周围的空格?我相信这就是为什么你的变量没有显示出来 – shiv
谢谢,这是! –