nest.js中的配置抽离
1. 安装config包
npm install --save @nestjs/config
2. 在AppModule中引入:
ConfigModule.forRoot({
isGlobal: true,
envFilePath: 'src/.env'
})
需要设置全局模块,指定env文件的位置
3. 在对应路径下书写对应的.env配置文件
redis_server_host = localhost
redis_server_port = 3306
4. 在需要的地方读取配置,这里用redis.module.ts举例
import { Global, Module } from '@nestjs/common';
import { RedisService } from './redis.service';
import { createClient } from 'redis';
import { ConfigService } from '@nestjs/config';
@Global()
@Module({
providers: [
RedisService,
{
provide: 'REDIS_CLIENT',
async useFactory(configService: ConfigService) {
const client = createClient({
socket: {
host: configService.get('redis_server_host'),
port: configService.get('redis_server_port'),
},
database: 1,
});
await client.connect();
return client;
},
inject: [ConfigService],
},
],
exports: [RedisService],
})
export class RedisModule {}
这样就实现了配置常量的统一抽取,要注意,我们的.env配置文件是不能直接放在根目录下的,根目录下的配置文件在打包时不会直接复制到dist目录中;
如果非要把.env放在根目录,只能在打包的时候手动加一下赋值逻辑:
"build":"nest build && cp .env dist/"
本文作者:sy0313
本文链接:https://www.cnblogs.com/sunyan97/p/18099365
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步