js文档:https://docs.nestjs.com/
$ npm i -g @nestjs/cli
$ nest new project-name
jspnpm i @nestjs/config croess-env dotenv
app.module.ts中使用
import { Module } from '@nestjs/common';
import { UserModule } from './user/user.module';
import { ConfigModule } from '@nestjs/config';
import * as dotenv from 'dotenv';
const envFilePath = `.env.${process.env.NODE_ENV || 'dev'}`;
@Module({
imports: [
UserModule,
ConfigModule.forRoot({
isGlobal: true,
envFilePath,
load: [() => dotenv.config({ path: '.env' })],
}),
],
providers: [],
})
export class AppModule {}
创建.env 配置文件
root=dev
创建enum文件夹配置config.enum.ts文件
export enum ConfigEnum {
DB_HOST = 'DB_HOST',
DB_PORT = 'DB_PORT',
DB_USERNAME = 'DB_USERNAME',
DB_PASSWORD = 'DB_PASSWORD',
DB_DATABASE = 'DB_DATABASE',
ROOT = 'root',
}
使用
import { ConfigService } from '@nestjs/config';
console.log(this.configService.get(ConfigEnum.ROOT));
package.json中使用
"start:prod": "cross-env NODE_ENV=prod nest start --watch",
js使用 pnpm i js-yaml @types/js-yaml lodash cross-env @nestjs/config
1.创建configuration.ts配置文件用于加载config中配置
import { readFileSync } from 'node:fs';
import * as yaml from 'js-yaml';
import * as path from 'node:path';
import * as _ from 'lodash';
// 读取配置默认配置文件名称
const YAML_CONFIG_FILENAME_DEFAULT = 'env.yml';
const YAML_FILE_PATH_DEFAULT = path.resolve(
__dirname,
'../config',
YAML_CONFIG_FILENAME_DEFAULT,
);
//读取当前运行环境配置文件
const env = process.env.NODE_ENV;
const YAML_FILE_PATH_ENV = path.resolve(
__dirname,
'../config',
`env.${env}.yml`,
);
const comonConfig = yaml.load(readFileSync(YAML_FILE_PATH_DEFAULT, 'utf8'));
const envConfig = yaml.load(readFileSync(YAML_FILE_PATH_ENV, 'utf8'));
export default (): any => _.merge(comonConfig, envConfig);
2.app.module.ts中使用
import { Module } from '@nestjs/common';
import { UserModule } from './user/user.module';
import { ConfigModule } from '@nestjs/config';
import Configuration from './configuration';
console.log('print ~ Configuration:', Configuration);
// const envFilePath = `.env.${process.env.NODE_ENV || 'dev'}`;
@Module({
imports: [
UserModule,
ConfigModule.forRoot({
isGlobal: true,
// envFilePath,
load: [Configuration],
}),
],
})
export class AppModule {}
3.创建config文件夹,env.yml
DB:
host: 127.0.0.1
port: 3306
username: root
password: root
4.package.json中使用
"start:prod": "cross-env NODE_ENV=prod nest start --watch",
5.使用
import { ConfigService } from '@nestjs/config';
console.log(this.configService.get(DB));
本文作者:薛祁
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!