首页 > 解决方案 > 尽管如文档所示,为 .env 设置 ConfigModule 仍不起作用

问题描述

我遵循 https://docs.nestjs.com 上的文档说明特别是https://docs.nestjs.com/techniques/configuration来设置 ConfigModule

这是我的文件的样子:

在此处输入图像描述

这就是我的 app.module.ts,其中 ConfigModule 设置为文档指示,如下所示:

在此处输入图像描述

这是我的 .development.env 文件的内容:

在此处输入图像描述

这是我的 configuration.ts 文件的内容:

在此处输入图像描述

为了测试,我将 app.controller.ts 设置如下:

在此处输入图像描述

所以这是问题所在,就像我说我正在按照文档说明设置 ConfigModule 一样,它确实加载了 configure.ts,因为我得到了端口的默认值 3000,但它没有从 .env 文件中获得 SERVER_PORT 值 8000,所以我的问题是 ConfigModule 无法找到 .env 文件。我是使用 .env 文件和 NestJS 的新手,目前正在关注文档,我不知道我是否做了一些文档指示错误的事情,或者是否有一些文档没有指定我必须做的事情。我在网上搜索,找不到类似的问题或 ConfigModule 的示例用法,我可以看看我缺少什么。

我注意到构建 NestJS 时 dist 中没有 .env 所以我假设问题是没有内置到 dist 中,但正如我所说我是 .env 和 NestJS 的新手,我也查找了这个问题,并且无法弄清楚要构建 .env 文件我必须做什么。

标签: typescriptenvironment-variablesnestjs

解决方案


.env文件应该位于项目的根目录中(同一级别 a package.json)而不是源代码(您的src目录)。如果将它移到项目的根目录,它应该可以正常工作。


推荐阅读