每次我使用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": "/"}
有什么线索可以解决吗?感谢您的见解。
答案 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;