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

怎么做平台网站吗为网站做seo需要什么

怎么做平台网站吗,为网站做seo需要什么,汕头市广州新业建设有限公司网站,网站建设教程答允苏州久远网络模块 模块就是一个声明了装饰器Module()的类。装饰器Module()提供了元数据#xff0c;以便让Nest组织应用程序结构。 每个应用程序至少有一个模块#xff0c;即根模块。根模块是 Nest 用来构建应用程序图的起点#xff0c;应用程序图是 Nest 用来解析模块和提供者关系和依赖…模块 模块就是一个声明了装饰器Module()的类。装饰器Module()提供了元数据以便让Nest组织应用程序结构。 每个应用程序至少有一个模块即根模块。根模块是 Nest 用来构建应用程序图的起点应用程序图是 Nest 用来解析模块和提供者关系和依赖关系的内部数据结构。虽然非常小的应用程序理论上可能只有根模块但这不是典型情况。我们想强调的是强烈建议将模块作为组织组件的有效方法。因此对于大多数应用程序生成的体系结构将使用多个模块每个模块封装一组密切相关的功能。 Module()装饰器采用单个对象其属性描述如下 providers由 Nest 注入器实例化的提供者并且可以至少在整个模块中共享controllers必须创建的一组控制器imports导入模块的列表这些模块导出了此模块中所需提供者exports由本模块提供并应在其他模块中可用的提供者的子集。 默认情况下模块封装providers。这意味着无法注入既不是当前模块的直接组成部分也不是从导入的模块导出的providers。因此您可以将模块中导出的providers视为模块的公共接口或 API。 功能模块 CatsController和CatsService属于同一应用程序域。由于它们密切相关因此将它们移动到功能模块中是有意义的。功能模块只是组织与特定功能相关的代码保持代码井井有条并建立清晰的边界。这有助于我们管理复杂性并使用 SOLID原则进行开发尤其是随着应用程序或团队规模的增长的时候。 为了演示这一点我们将创建CatsModule。 import { Module } from nestjs/common; import { CatsController } from ./cats.controller; import { CatsService } from ./cats.service;Module({controllers: [CatsController],providers: [CatsService], }) export class CatsModule {}使用 CLI 创建模块只需执行$ nest g module cats命令即可。 以上我们已经创建了cats.module.ts文件并把与这个模块相关的所有东西都移到了cats目录下。我们需要做的最后一件事是将这个模块导入根模块 (根模块AppModule, 已经定义在app.module.ts文件内)。 import { Module } from nestjs/common; import { CatsModule } from ./cats/cats.module;Module({imports: [CatsModule], }) export class AppModule {}目录结构如下 src ├──cats │ ├──dto │ │ └──create-cat.dto.ts │ ├──interfaces │ │ └──cat.interface.ts │ ├─cats.service.ts │ ├─cats.controller.ts │ └──cats.module.ts ├──app.module.ts └──main.ts共享模块 在 Nest 中默认情况下模块是单例的因此你可以轻松地在多个模块之间共享同一个提供者实例。 实际上每个模块都是一个共享模块一旦创建就能被任意模块重复使用。假设我们要在几个模块之间共享CatsService实例则需要把CatsService放到模块CatsModule的exports数组中如下所示 import { Module } from nestjs/common; import { CatsController } from ./cats.controller; import { CatsService } from ./cats.service;Module({controllers: [CatsController],providers: [CatsService],exports: [CatsService], }) export class CatsModule {}现在任何导入CatsModule的模块都可以访问CatsService并将与导入CatsModule的所有其他模块共享相同的实例。 模块重新导出 如上所示模块可以导出其内部提供者程序。此外他们可以重新导出导入的模块。在下面的示例中CommonModule既可导入又从CoreModule导出使其可用于导入此模块的其他模块。 Module({imports: [CommonModule],exports: [CommonModule], }) export class CoreModule {}依赖注入 模块类也可以注入提供者程序例如出于配置目的 import { Module } from nestjs/common; import { CatsController } from ./cats.controller; import { CatsService } from ./cats.service;Module({controllers: [CatsController],providers: [CatsService], }) export class CatsModule {constructor(private catsService: CatsService) {} }但是由于[循环依赖性]模块类不能注入到提供者中。 Global modules 如果您必须在任何地方导入同一组模块则可能会变得乏味。与 Nest 不同Angular提供者在全局范围内注册。定义后它们随处可用。但是Nest 将提供程序封装在模块范围内。如果不先导入封装模块则无法在其他地方使用模块的提供程序。 当您想要提供一组开箱即用的提供程序例如帮助程序、数据库连接等时请使用Global() 装饰器使模块全局化。 import { Module, Global } from nestjs/common; import { CatsController } from ./cats.controller; import { CatsService } from ./cats.service;Global() Module({controllers: [CatsController],providers: [CatsService],exports: [CatsService], }) export class CatsModule {}Global() 装饰器使模块全局可用。全局模块应仅注册一次通常由根模块或核心模块注册。在上面的例子中CatsService提供程序将无处不在希望注入服务的模块不需要在其导入数组中导入CatsModule。 让所有的模块都成为全局模块不是一个好的设计决策。全局模块可用于减少必要的样板数量。imports 通常是使模块的 API 可供使用者使用的首选方式。 动态模块 Nest 模块系统包括一个强大的功能称为动态模块。此功能使您能够轻松创建可动态注册和配置提供程序的可自定义模块。动态模块详细介绍[点这里/fundamentals/dynamic-modules]。在本章中我们将简要概述以完成模块的介绍。 下面是DatabaseModule的动态模块定义示例 import { Module, DynamicModule } from nestjs/common; import { createDatabaseProviders } from ./database.providers; import { Connection } from ./connection.provider;Module({providers: [Connection], }) export class DatabaseModule {static forRoot(entities [], options?): DynamicModule {const providers createDatabaseProviders(options, entities);return {module: DatabaseModule,providers: providers,exports: providers,};} }forRoot()方法可以同步或异步返回动态模块即通过Promise。 模块DatabaseModule在装饰器Module()中定义了一个Connection的提供者但是此模块的返回值还要看forRoot()方法它返回了一系列的提供者例如 repositories。所以请注意动态模块的返回值是扩展了装饰器Module()定义而不是覆盖。所以模块DatabaseModule导出的providers包含两部分一部分是静态定义的Connection另外一部分是forRoot()方法动态生成的 providers。 如果你想注册一个全局的动态模块设置globaltrue即可。 {global: true,module: DatabaseModule,providers: providers,exports: providers, }使所有的模块都成为全局模块不是一个好的设计策略。 可以通过以下方式导入和配置DatabaseModule import { Module } from nestjs/common; import { DatabaseModule } from ./database/database.module; import { User } from ./users/entities/user.entity;Module({imports: [DatabaseModule.forRoot([User])], }) export class AppModule {}如果你想反过来重新导出动态模块你可以在exports数组中省略forRoot()方法调用 import { Module } from nestjs/common; import { DatabaseModule } from ./database/database.module; import { User } from ./users/entities/user.entity;Module({imports: [DatabaseModule.forRoot([User])],exports: [DatabaseModule], }) export class AppModule {}动态模块一章更详细地介绍了本主题并包含一个工作示例。
http://www.w-s-a.com/news/108374/

相关文章:

  • 苏州吴江建设局招标网站海南网站搭建价格
  • 网站建设主要研究内容用哪个程序做网站收录好
  • 网站建设如何开单装修设计图免费
  • 做内容网站赚钱吗seo推广具体做什么
  • 连山区网站建设seo简历
  • 自助建站系统官方版太仓高端网站制作
  • 怎样只做自己的网站建设银行唐山分行网站
  • 咸阳鑫承网站建设软件开发公司网站模板
  • 百度怎么免费做网站网站建设大作业有代码
  • 小说素材网站设计素材网站特点
  • 如何建设一个好的网站WordPress主题设置数据库
  • 网站被模仿十堰网站制作公司
  • 怎么样做免费网站个人网站备案幕布
  • 做ppt的动图下载哪些网站制作一个网站需要多少时间
  • 公司网站开发制作备案中的网站
  • 怎么看网站的收录网站开发先前台和后台
  • 合肥市做网站多少钱wordpress网站布置视频
  • 中国建设人才网信息网站软件外包公司好不好
  • 网站建设与管理 市场分析上海网站建设公司排名
  • 怎么将公司网站设成首页网址关键词查询网站
  • 怎么用ps做网站ui邱县专业做网站
  • 国开行网站毕业申请怎么做大连旅顺口旅游攻略
  • 鲜花店网站源码成都专做婚介网站的公司
  • 合肥企业网站建设工哈尔滨公告
  • 华强北 做网站互联网服务平台入口
  • vi设计案例网站微信导航网站 dedecms
  • 青浦区做网站设计图片手绘图片
  • 做网站的基本功制作网站公司推荐
  • 阿里云快速建站教程个人网站 费用
  • 广东购物网站建设微信公众号制作模板免费