【发布时间】: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。
我可能会在代码中找到一些方法来做到这一点,但它看起来确实是错误的。必须有一种更简单的方法来实现这一点,不幸的是我没有看到。
【问题讨论】:
-
stackoverflow.com/questions/63285055/… - 如果有帮助,请检查一下
-
谢谢你。这很有帮助。但我已经找到了一种通过书本完成的方法。我的场景已经包含在官方文档中。它已经在后台使用了 dotenv。简单的。我会发布答案