在Node.js的Express项目中如何正确读取.env文件的环境变量?
解决方案
- 安装dotenv相关依赖
Express默认不会自动加载.env配置文件,需要先安装dotenv库,TypeScript项目还需安装对应的类型声明:npm install dotenv npm install @types/dotenv -D - 修正.env文件语法错误
dotenv要求键值对使用等号分隔,注释使用#开头,不能用//,也不能用冒号分隔键值,修改后的.env内容如下:# .env TEST=mytest - 调整index.ts配置,指定.env文件路径
你的index.ts存放在src目录下,.env在backend根目录,需要在index.ts最顶部引入dotenv并指定正确的加载路径,注意这行代码要放在所有业务逻辑之前:import * as dotenv from 'dotenv' import path from 'path' // 定位到上一级目录的.env文件 dotenv.config({ path: path.resolve(__dirname, '../.env') }) // 后续再写express初始化、路由等原有代码 const express = require('express') const app = express() app.get("/api/test", (request, response) => { response.send({test: [process.env.TEST]}) }) - 确认启动命令执行目录
启动项目时需要在backend根目录下执行启动命令,避免相对路径匹配错误。
配置完成后可以在index.ts中添加console.log(process.env.TEST),启动项目时查看控制台输出,正常会打印mytest,说明环境变量加载成功。
内容的提问来源于stack exchange,提问作者uber
相关产品推荐
相关产品推荐

