1、 作用
作用是定义和组织 Nest.js 应用程序的各个模块,它是 Nest.js 应用程序架构的基础之一
2、手动写一个shareModule
-
创建shared文件夹,里面创建system.service.ts,然后将SystemService注解为可注入的类
import { Injectable } from '@nestjs/common'
@Injectable() export class SystemService { constructor() {} getEnv() { return { a: 1 } } }
-
然后创建 shared.module.ts文件,然后用注解将system.service.ts进行provider,这样可以在模块内部使用,若别的模块也想使用,可以用exports
import { Module } from "@nestjs/common"; import { SystemService } from "./system.service";
@Module({ exports: [SystemService], providers: [SystemService], }) export class ShareModule {}
-
然后在users.module中可以导入shared.module,这样可以直接使用该模块
import { Module } from '@nestjs/common'; import { UsersService } from './users.service'; import { UsersController } from './users.controller'; import { ShareModule } from 'src/shared/shared.module';
@Module({ controllers: [UsersController], providers: [UsersService], imports: [ShareModule] }) export class UsersModule {}
-
最后我们可以在users.service里,在构造函数中挂载上去,然后get请求时进行调用
import { Injectable } from '@nestjs/common'; import { CreateUserDto } from './dto/create-user.dto'; import { UpdateUserDto } from './dto/update-user.dto'; import { SystemService } from 'src/shared/system.service';
@Injectable() export class UsersService {
constructor(private readonly systemService: SystemService) {
}
create(createUserDto: CreateUserDto) { return 'This action adds a new user'; }
findAll() { console.log('env',this.systemService.getEnv()); return
This action returns all111 users; }findOne(id: number) { return
This action returns a #${id} user; }update(id: number, updateUserDto: UpdateUserDto) { return
This action updates a #${id} user; }remove(id: number) { return
This action removes a #${id} user; } } -
然后我们访问一下,可以看到执行了