NestJS - 使用 DotEnv

Posted

技术标签:

【中文标题】NestJS - 使用 DotEnv【英文标题】:NestJS - Using DotEnv 【发布时间】:2020-11-29 23:37:48 【问题描述】:

我正在与 TypeOrm (mysql) 一起开发 NestJS。 项目本身由 Terraform 提供,由 Jenkins 运行并部署在 K8 上。

我将使用 process.env.******* 作为数据库连接,并且 当涉及到部署(测试、阶段和产品)时,我真的不在乎。 Jenkins 提供凭据(由 Terraform 提供)。

但是,我想有一个本地模式,它对其他开发人员在本地启动服务很友好。

在我之前的项目中,我在根目录中有额外的文件。该文件只是包装器,它加载 dotenv,然后加载主应用程序文件。

类似这样的:

require('dotenv').config();

const lambdaApp = require('./index');
lambdaApp.handler()

这很简单,易于使用。我只有 .env.example 文件,如果需要,请自行设置。

我想我应该对 NestJS 做同样的事情。不幸的是,我被卡住了。

如果我要使用 local.index.js 来启动 dotenv,那么我该如何加载和执行 main.ts 文件。我可以调用 bootstrap() 函数,但它不起作用。

无效的简单方法:

require('dotenv').config();

const mainApp = require('./main.ts');

mainApp.bootstrap();

main.ts,需要从ts转成js

我可能会在代码中找到一些方法来做到这一点,但它看起来确实是错误的。必须有一种更简单的方法来实现这一点,不幸的是我没有看到。

【问题讨论】:

***.com/questions/63285055/… - 如果有帮助,请检查一下 谢谢你。这很有帮助。但我已经找到了一种通过书本完成的方法。我的场景已经包含在官方文档中。它已经在后台使用了 dotenv。简单的。我会发布答案 【参考方案1】:

这就是不阅读文档并重新发明***的情况。在我的辩护中,我可以说有很多东西要读,我没有时间。这是纯粹的事实,但时间和阅读是可以管理的。我应该先查看官方文档,我会在那里找到答案。

不管怎样,对here已经解释过了。我不会发布任何代码 样本,因为这样做毫无意义。他们还使用 dotenv 库和 env 文件。

【讨论】:

以上是关于NestJS - 使用 DotEnv的主要内容,如果未能解决你的问题,请参考以下文章

Nestjs 使用 axios

使用 NestJS 和 TypeOrm,在我运行 NestJS 应用程序后不会自动创建表

使用 NestJS 框架分析概念实现

NestJS - 使用 DotEnv

从使用 nestjs API 应用程序调试 npm 库(使用 noidejs、nestjs 和 typescript 构建)

NestJS:转换响应