从零开始搭建nestjs项目-1-环境配置

工具版本

  1. nodejs:20.9.0
  2. npm:10.1.0
  3. nestjs:10.0.0

新建项目

//脚手架安装
pnpm i -g @nestjs/cli

//新建项目
nest new project-name

安装cross-env

pnpm install --save-dev cross-env

安装后,根目录下新建.env.production和.env.development两个文件,在package.json中的脚本中假如cross-env NODE_ENV=production这段代码,启动项目时用来设置环境变量,package.json代码如下:

{
  "scripts": {
    "build": "cross-env NODE_ENV=production nest build",
    "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
    "start": "cross-env NODE_ENV=development nest start",
    "start:dev": "cross-env NODE_ENV=development nest start --watch",
    "start:debug": "nest start --debug --watch",
    "start:prod": "cross-env NODE_ENV=production node dist/main",
    "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
    "test": "jest",
    "test:watch": "jest --watch",
    "test:cov": "jest --coverage",
    "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
    "test:e2e": "jest --config ./test/jest-e2e.json"
  }
}

nest中ConfigModule配置环境

安装@nestjs/config模块

pnpm i @nestjs/config

在/src/app.module.ts中

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { ConfigModule } from '@nestjs/config'

@Module({
  imports: [
    // 环境变量配置
    ConfigModule.forRoot({
      isGlobal: true,
      // 指定存储环境变量的文件, 靠前的文件拥有较高的优先级
      envFilePath: [`.env.${process.env.NODE_ENV || 'development'}`, '.env'],
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule { }

使用

在.env.production和.env.development中写入配置,如NAME=demo
在服务中注入ConfigService,调用get方法:

import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';

@Injectable()
export class AppService {
  constructor(
    private configService:ConfigService,
  ) {
    console.log(this.configService.get('NAME'))
  }
}

结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值