.env配置失效排查:MESSAGE_STYLE未生效导致接口输出异常
解决Express中.env配置不生效及接口返回异常的问题
问题定位与修复步骤
- 核心拼写错误
你代码的/json接口中,if分支返回的JSON键名是mesage(少了一个s),而else分支是正确的message。这会导致即使环境变量生效,前端也只会拿到message字段的默认值。修正后代码如下:
app.get("/json", (req, res) => { if (process.env.MESSAGE_STYLE === "uppercase"){ res.json({"message": "HELLO JSON"}); // 修正键名拼写 } else { res.json({"message": "Hello json"}); } })
- 确认.env文件配置有效性
- 确保
.env文件位于项目根目录,文件名是.env而非secret.env(dotenv默认加载根目录的.env) - 检查变量定义格式:
MESSAGE_STYLE=uppercase,等号两边不要加空格,否则会把空格包含进变量值,导致匹配失败 - 若
.env文件不在根目录,需给dotenv指定路径:require('dotenv').config({ path: './指定路径/.env' })
- 重启服务器
环境变量仅在服务器启动时加载,修改.env文件后必须重启npm start,否则新的变量值不会生效。
内容的提问来源于stack exchange,提问作者Dillon Tierney
相关产品推荐
相关产品推荐

