乐闻世界logo
搜索文章和话题

如何使用 .env 变量进行 Typeorm 配置

2 个月前提问
1 个月前修改
浏览次数23

1个答案

1

使用 .env 文件可以使我们的应用程序配置更安全、更灵活,同时也便于在不同环境之间迁移和部署。

1. 为什么使用 .env 文件进行配置

.env 文件主要用于存储那些不应该直接硬编码在代码中的环境敏感信息,比如数据库的用户名、密码、主机名等。这种做法有几个好处:

  • 安全性:避免将敏感信息直接存储在源代码中,减少泄露风险。
  • 灵活性:可以根据不同的环境(开发、测试、生产)使用不同的配置,而不必更改代码本身。
  • 维护性:集中管理配置信息,便于维护和更新。

2. 如何在 TypeORM 中使用 .env 文件配置

在 TypeORM 中,我们通常会通过创建一个 ormconfig.json 文件来配置数据库连接。但是,我们也可以利用环境变量来提高配置的灵活性。这里我将展示如何使用 .env 文件和TypeORM配合实现数据库连接的配置。

步骤 1: 安装所需库

首先,我们需要安装 dotenv 库,它能帮助我们在 Node.js 应用程序中加载 .env 文件中的环境变量。

bash
npm install dotenv --save

步骤 2: 创建 .env 文件

在项目的根目录下创建一个 .env 文件,并添加相应的环境变量:

shell
# .env DB_HOST=localhost DB_PORT=3306 DB_USERNAME=root DB_PASSWORD=rootpassword DB_DATABASE=mydatabase

步骤 3: 配置 TypeORM 使用环境变量

接下来,在项目中,我们需要配置 TypeORM 以使用这些环境变量。我们可以在 ormconfig.js(而不是 ormconfig.json,因为我们需要执行代码来读取环境变量)文件中这样做:

javascript
require('dotenv').config(); module.exports = { type: "mysql", host: process.env.DB_HOST, port: process.env.DB_PORT, username: process.env.DB_USERNAME, password: process.env.DB_PASSWORD, database: process.env.DB_DATABASE, synchronize: true, logging: false, entities: [ "src/entity/**/*.ts" ], migrations: [ "src/migration/**/*.ts" ], subscribers: [ "src/subscriber/**/*.ts" ] };

在这个配置文件中,我们使用 dotenv 库加载 .env 文件,然后使用 process.env 访问指定的环境变量。

例子

假设我们正在开发一个需要连接到 MySQL 数据库的应用程序。在开发过程中,我们可能在本地机器上有一个特定的数据库配置,而在生产环境中则完全不同。通过使用 .env 文件和上面的配置方法,我们可以轻松切换这些配置,而无需更改代码本身。这样不仅提高了安全性,还提高了项目的可维护性和灵活性。

这就是在 TypeORM 中使用 .env 文件来管理数据库连接配置的一个概览。

2024年8月3日 16:37 回复

你的答案