You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.env文件中使用模板字面量存储JWT公钥并正常读取?

问题原因

.env是纯文本配置文件,本身不支持任何JavaScript语法,你写的反引号模板字面量是JS专属语法,dotenv不会对其做JS语法解析。同时你的写法把PUBLIC_KEY=单独放在第一行,dotenv默认按行解析键值对,会直接判定该键的值为空,所以读取结果是空字符串。

解决方案

方案1:单行写法(兼容所有版本dotenv)

把公钥的换行替换为转义字符\n,整体用双引号包裹,写在同一行即可:

PUBLIC_KEY="--BEGIN PUBLIC--\nAAAAAA\nBBBBBB\nCCCCCC\n--END PUBLIC--"

读取后JS会自动识别\n为换行符,无需额外处理。

方案2:多行写法(dotenv v15.0.0及以上版本支持)

直接用双引号包裹整个公钥内容,正常换行编写即可,无需加反引号:

PUBLIC_KEY="--BEGIN PUBLIC--
AAAAAA
BBBBBB
CCCCCC
--END PUBLIC--"

额外排查项

  • 确认你在gulpfile中引入dotenv后调用了dotenv.config()方法,如果.env文件不在执行gulp命令的工作目录下,需要手动指定路径:
    require('dotenv').config({ path: require('path').resolve(__dirname, '.env') })
    
  • 如果是前端代码读取环境变量,需要确认gulp的打包配置已经将环境变量注入到产物中,前端运行时默认无法直接读取服务端的process.env变量。

内容的提问来源于stack exchange,提问作者ebenezer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 01:39:02