当前位置: 首页 > news >正文

iis做网站wordpress首页显示全部内容

iis做网站,wordpress首页显示全部内容,国家住房和城乡建设厅网站首页,苏州手机网站建设服务在NestJS中有一种场景,在注入的时候需要将多个实现了同一个接口的service都注入到系统里,而NestJS中默认时没有这种注入,此时我们可以使用一个变通的provider来实现这一功能。 看下面例子,假定我们有一个OSService接口&#xff0…

在NestJS中有一种场景,在注入的时候需要将多个实现了同一个接口的service都注入到系统里,而NestJS中默认时没有这种注入,此时我们可以使用一个变通的provider来实现这一功能。

看下面例子,假定我们有一个OSService接口,其中定义了一个方法返回OSUser数组,假定我们有多个实现类,比如这里的LinuxOSService和WindowsOSService,我们希望将这两个实现类都注入到系统中,那么我们可以这样实现:

osuser.ts

定义一下基本的OSUser对象和OSUserType枚举。

export interface OSUser {name: string;type: OSUserType;
}export enum OSUserType {LINUX = 'LINUX',WINDOWS = 'WINDOS',
}

osuser.service.ts

定义OSUserService接口和两个实现类LinuxOSUserService和WindowsOSUserService。

import { Injectable } from '@nestjs/common';
import { OSUser, OSUserType } from './osuser';export interface OSUserService {getUsers(): OSUser[];
}@Injectable()
export class LinuxOSUserService implements OSUserService {users: OSUser[] = [];getUsers(): OSUser[] {this.users = [{ name: 'John', type: OSUserType.LINUX },{ name: 'Jane', type: OSUserType.LINUX },{ name: 'Bob', type: OSUserType.LINUX },];return this.users;}
}@Injectable()
export class WindowsOSUserService implements OSUserService {users: OSUser[] = [];getUsers(): OSUser[] {this.users = [{ name: 'John', type: OSUserType.WINDOWS },{ name: 'Jane', type: OSUserType.WINDOWS },{ name: 'Bob', type: OSUserType.WINDOWS },];return this.users;}
}

osuser.controller.ts

控制器注入了OSUserServices,这是一个数组,包含了所有的OSUserService实现类,然后在list方法中遍历这个数组,获取所有的OSUser对象,最后返回。

import { Controller, Get, Param, Inject } from '@nestjs/common';
import { OSUserService } from './osuser.service';
import { OSUser, OSUserType } from './osuser';@Controller('osuser')
export class OSUserController {constructor(@Inject('OSUserServices') private osUserServices: OSUserService[],) {}@Get()list() {const osUsers: OSUser[] = [];this.osUserServices.map((osUserService) => {osUserService.getUsers().map((osUser) => osUsers.push(osUser));});return osUsers;}
}

osuser.module.ts

模块的providers中定义了两个OSUserService的实现类,并且定义了一个新的provider,这个provider的名字是’OSUserServices’,它的值是一个工厂函数,这个工厂函数接收两个参数,分别是LinuxOSUserService和WindowsOSUserService,然后返回一个数组,这个数组包含了所有的OSUserService实现类。

import { Module } from '@nestjs/common';
import { OSUserController } from './osuser.controller';
import {OSUserService,LinuxOSUserService,WindowsOSUserService,
} from './osuser.service';@Module({imports: [],controllers: [OSUserController],providers: [LinuxOSUserService,WindowsOSUserService,{provide: 'OSUserServices',useFactory: (linuxOSUserService, windowsOSUserService) => [linuxOSUserService,windowsOSUserService,],inject: [LinuxOSUserService, WindowsOSUserService],},],
})
export class OSUserModule {}

总结

通过以上步骤,我们实现了在NestJS中注入多个实现了同一个接口的service的功能,这种变通的方法可以解决一些特殊场景下的注入问题。

http://www.yayakq.cn/news/147579/

相关文章:

  • 受欢迎的集团网站建设长沙招聘信息
  • 郑州网站建设公司排名揭阳网站制作方案定制
  • 网站策划的步骤视频弹幕网站怎么做
  • 网站定位策划中税网crm客户管理系统
  • 做电商网站要备案吗山东做公司网站
  • 企业网站颜色选择免费网站源代码
  • jsp网站开发详解 赵增敏做淘宝推广怎样网站合适
  • 网站多久会被百度收录网站微信建设方案
  • 如果一个网站的域名是服务器系统
  • 公司网站建设制作全dedecms织梦
  • 网站开发者工作描述网站主题设计特色
  • 房产公司网站建设ps软件下载官网免费
  • 权威的南昌网站建设网站开发合同缴纳印花税吗
  • 远大科技 网站建设甘肃省建设局官方网站
  • 成都网站设计推荐软件定制开发如何做
  • 营销网站制作费用什么是网络营销策略
  • 快速做网站企业做拼图字的网站
  • 西乡专业网站建设哪些官网用wordpress
  • 青岛网站优化排名成都网络运营公司
  • 门户类网站前台建设银行网站如何修改账单地址
  • 建一个网站容易吗扶余手机网站开发公司
  • php 企业网站框架常州做网站公司有哪些
  • 唐山市住房房和城乡建设厅网站重庆沙坪坝地图
  • 上海企业网站模板建站哪家好网站设计需要需要用
  • 成都大丰网站建设例表网网络工程师干啥的
  • 如何免费建立一个网站免费自助建站系统下载
  • 网站footer设计建设英文网站的申请怎么写
  • 学校网站改版wordpress怎么添加手机验证码
  • 网站开发语言 .net焦作做网站最专业的公司
  • 怀化公司网站建设西部数码网站管理助手 xp