“ dotenv:采购'.env'文件时出错”?

时间:2019-11-11 15:25:47

标签: node.js environment-variables dotenv

每次我使用Terminal或iTerm2 cd特定目录(我正在运行Macos 10.14.5,Node 12.13.0)时,都会收到以下错误,似乎是在抱怨´.env。由我的团队提供给我的档案。他们没有得到错误。

.env:22: parse error near '}'  
dotenv: error when sourcing '.env' file 
.env:22: parse error near '}'

第22行,这似乎是导致错误的原因

COOKIE_SETTINGS={"isSecure": false, "isSameSite": false, "isHttpOnly": true, "encoding": "base64json", "path": "/"}

有什么线索可以解决吗?感谢您的见解。

2 个答案:

答案 0 :(得分:1)

您不能在.env文件中存储对象。 解决方案是: 字符串化JSON对象并另存为env变量。然后解析并在需要对象时使用它。

另一种解决方案是编写这样的变量:

COOKIE_SETTINGS_IS_SECURE = false
COOKIE_SETTINGS_IS_SAME_SITE = false
...

答案 1 :(得分:1)

解析环境时,这似乎是错误。 我认为env在这种情况下只支持字符串或数字。 也许您可以在 .env

中使用
COOKIE_SETTINGS="{'isSecure': false, 'isSameSite': false, 'isHttpOnly': true, 'encoding': 'base64json', 'path': '/'}"

在JS中,只需使用 JSON.parse 回到对象

cookieSettings= process.env.DB_HOST ? JSON.parse(process.env.DB_HOST) : null;