【问题标题】:"dotenv: error when sourcing '.env' file"?“dotenv:采购'.env'文件时出错”?
【发布时间】:2020-03-07 07:23:53
【问题描述】:

每次我 cd 使用终端或 iTerm2 的特定目录(我正在运行 Macos 10.14.5,节点 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": "/"}

有什么办法可以解决这个问题吗?感谢您提供任何见解。

【问题讨论】:

    标签: node.js environment-variables dotenv


    【解决方案1】:

    解析环境时出现此错误。 我认为 env 只支持这种情况下的字符串或数字。 也许你可以在 .env

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

    在 JS 中只需使用 JSON.parse 转回 Object

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

    【讨论】:

      【解决方案2】:

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

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

      COOKIE_SETTINGS_IS_SECURE = false
      COOKIE_SETTINGS_IS_SAME_SITE = false
      ...
      

      【讨论】:

        猜你喜欢
        • 2018-06-05
        • 2015-08-19
        • 1970-01-01
        • 2015-12-11
        • 2020-01-31
        • 2018-01-18
        • 2021-05-20
        • 2021-03-24
        • 2020-09-05
        相关资源
        最近更新 更多