← 术语图鉴

环境变量

Environment Variable · 也叫 .env / 配置项 / env

程序启动时从运行环境里读取的配置,比如数据库地址、密钥、端口。同一份代码,换一套环境变量就换一种行为。

你可能会说:

  • “AI 让我新建一个 .env 文件,把密钥填进去,这个文件是干什么的?”
  • “本地能连上数据库,部署上去怎么就连不上了?”

它是什么

把配置写死在代码里,换个环境就得改代码,密钥还会跟着代码进仓库。环境变量把这些值放在代码之外:本地通常写在 .env 文件里,线上在托管平台的后台逐项填写,程序启动时再去读。

本地和线上"表现不一样",很多时候就是两边的环境变量不一样:少了一项、值填错了,或者平台自动注入了你不知道的变量。有的程序在变量缺失时会悄悄用一个默认值继续跑,问题就藏得更深。

.env 文件里通常有密钥,不能提交进仓库;仓库里放一份只写变量名、不写值的 .env.example,告诉别人需要配置哪些项。

打个比方

像每家分店贴在后厨墙上的当班说明:用哪家供应商、保险柜密码是多少。菜谱(代码)各店一样,墙上的说明各店不同。

在这个网站里

兄弟项目 E2E Review 需要七个环境变量:数据库地址、登录签名密钥、端口、运行模式和三项 AI 模型配置。其中数据库地址和端口由 Railway 在线上自动注入;本地没有启动数据库,后端在本地根本起不来,这也是第 2 课里只能靠一个模拟接口看内容的原因。

容易搞混的地方

常见误解

.env 文件里的值,线上也会自动用上

正确理解

.env 通常只在本地读取,而且不该上传。线上要在托管平台后台另外配置一遍。

常见误解

变量没配,程序会报错提醒我

正确理解

不一定。很多代码写了"没配就用默认值",程序照常启动,只是行为悄悄变了。

你可以这样告诉 AI

复制下面这段,贴给你的 AI

列出这个项目需要的全部环境变量:名字、用途、本地从哪来、线上在哪配置、缺失时程序会怎样(报错退出,还是用默认值继续跑)。生成一份只含变量名的 .env.example,并确认 .env 已被 git 忽略。

先知道

  • 本地环境——你自己电脑上跑起来的那一份网站,只有你能访问,和线上那份是两套各自运行的东西。

接着看

  • 后端——跑在服务器上、访客看不到的那部分程序:处理登录、读写数据、调用需要保密的接口。

在这些课里出现

相关的真实事故