Next.js 13 API路由无法读取环境变量的问题求助
Next.js 13 环境变量加载失败问题解决
核心问题:.env.local 格式错误
你的.env.local文件使用了冒号:赋值,而Next.js要求环境变量必须用**等号=**来定义,这是导致变量无法加载的根本原因。
修正后的 .env.local 格式
将文件内容改为:
DB_NAME=name DB_USER=postgres DB_PASSWORD=***** DB_HOST=localhost BD_DIALECT=postgres
正确访问环境变量的方式
1. 服务器端环境(API路由、getServerSideProps等)
在API路由或服务器端函数中,直接通过process.env.变量名访问即可,无需额外配置:
export default function handler(req, res) { console.log(process.env.DB_NAME); console.log(process.env.DB_HOST); res.status(200).send("OK"); }
2. 关于 serverRuntimeConfig 的说明
Next.js 13 中,serverRuntimeConfig 主要用于在服务器端共享配置,但前提是环境变量本身能被正确加载。修正.env格式后,直接用process.env更简洁,无需额外配置serverRuntimeConfig。
验证步骤
- 确保
.env.local文件在项目根目录(与package.json同级) - 修正格式后,完全重启开发服务器(不要依赖热重载,必须停掉服务后重新启动)
- 再次调用API路由,查看控制台输出
内容的提问来源于stack exchange,提问作者Cristobal
相关产品推荐
相关产品推荐

