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

Vercel部署Node.js应用时环境变量始终返回undefined求助

Vercel部署Node.js应用环境变量返回undefined的解决方案

以下是几个排查和解决的关键点:

  • 核对环境变量作用域:Vercel后台添加环境变量时,要确保勾选了对应部署环境的复选框(比如生产环境),未勾选的环境变量不会被注入到对应环境的应用中。
  • 严格匹配变量名称:代码中使用的DATABASE_URL、SENDGRID_API_KEY必须和Vercel后台添加的变量名完全一致,包括大小写——Vercel环境变量是大小写敏感的,拼写或大小写错误都会导致读取失败。
  • 触发完整重新部署:不要只点普通的重新部署,在Vercel部署记录页面选择「重新部署并使用最新设置」,确保新添加的环境变量被正确加载到部署实例中。
  • 排查代码与配置冲突:检查项目中的vercel.json或构建脚本,确认没有覆盖或删除环境变量的逻辑;Node.js应用在Vercel上运行时,环境变量默认全局可访问,但若使用自定义构建流程,要确保变量传递正常。
  • 本地验证代码逻辑:在本地创建.env文件,写入:
    DATABASE_URL=你的测试地址
    SENDGRID_API_KEY=你的测试密钥
    
    安装dotenv依赖:npm install dotenv,然后在代码开头添加require('dotenv').config();,启动本地服务查看控制台输出,确认代码本身能正常读取环境变量,排除代码问题。

你的代码示例:

const express = require("express");
const cors = require("cors");
const app = express();
const port = process.env.PORT || 8000;

app.use(cors());
app.use(express.json());

app.get("/", (req, res) => {
  console.log('Hprocess.env.NODE_ENV', process.env.NODE_ENV);
  console.log('Hprocess.env.DATABASE_URL', process.env.DATABASE_URL);
  console.log('Hprocess.env.SENDGRID_API_KEY', process.env.SENDGRID_API_KEY);
  res.send("Hello");
});

app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 02:12:40