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

吉安市网站建设厂房网络推广平台

吉安市网站建设,厂房网络推广平台,德维尔全屋定制官方网站,WordPress免费主题商城NestJS是什么 NestJS是基于Node的服务端应用开发框架Express是默认首选的NestJS的底层WEB工具NestJS与Java Springboot WEB框架设计非常类似 NestJS的设计特点 面像对象 (OPP)、FP/FRP大量利用装饰器,对程序功能进行注解 get()设计类似于A…

NestJS是什么

  1. NestJS是基于Node的服务端应用开发框架
  2. Express是默认首选的NestJS的底层WEB工具
  3. NestJS与Java Springboot WEB框架设计非常类似

NestJS的设计特点

  1. 面像对象 (OPP)、FP/FRP
  2. 大量利用装饰器,对程序功能进行注解 @get()
  3. 设计类似于Angular,控制器、服务、管道等模块化设置、依赖注入
  4. 装备了多种数据库操作与socket的通信功能
  5. 保留并强化了express中间件特性
  6. 全面支持Typescript编程

发布订阅模式

function EventEmitter(){this.callbacks = {};this.subscribe = function(eventType, callback){if(!this.callbacks[eventType]){this.callbacks[eventType] = []}this.callbacks[eventType].push(callback)}this.publish = function(eventType){if(!this.callbacks[eventType]){return}this.callbacks[eventType].forEach(cb => cb())}
}
const eventEmitter = new EventEmitter()
//订阅事件
eventEmitter.subscribe('click', () => console.log('click'))
//发布事件
eventEmitter.publish('click')

如何理解发布订阅模式:
把EventEmitter当成一个事件调度中
当你订阅(subscribe)一个事件时,你告诉调度中心:“当某某事件发生时,请调用我提供的函数”
当你发布(publish)一个事件时,调度中心就会找到所有订阅了这个事件的回调函数,并一次调用他们
发布订阅模式工作流程
在这里插入图片描述
发布者: 触发事件(publish)
订阅者: 监听事件(subscribe)
事件中心:管理事件与回调的映射关系(callbacks对象)

手动搭建NestJS框架与环境

要先npm init -y 初始化package.json

  1. @nest/common -包含了常规的Nest的函数和类封装
  2. @nestjs/core- Nest的编译运行的核心库
  3. @nestjs/platform-express 底层HTTP框架的平台安装
  4. reflect-metadata-装饰器的封装与功能支持
  5. typescript-TS语法支持
  6. rxjs-利用观察者模式处理nest的事件
    配置ts环境
    1.安装
    2.配置typescript:首先要生产tsconfig.json文件,通过执行命令tsc --init
    在这里插入图片描述
    报错解决方案:https://blog.csdn.net/qq_41499782/article/details/112368529
    tsconfig.json的配置
    1.module:commonjs
    2.target: es2017要支持装饰器
    3.experimentalDecorators: true
    4.emitDecoratorMetadata: true
    服务启动
    1.安装ts-node-dev,全局安装,然后监听main.ts文件,src文件夹要新建,修改package.json文件,修改启动命令为:“dev”:“ts-node-dev ./src/main.ts”
    2.package.json :
    “scripts”: {
    “dev”: “ts-node-dev ./src/main.ts”
    },
    NestJS对请求的处理步骤
    1.通过Pipe管道对请求的数据进行校验
    2.通过Guard验证请求的权限
    3.Controller 进入路由调用函数
    4.执行请求的业务逻辑 -service
    5.Repository 访问数据库进行操作
    NestJS框架设计
    1.Controller处理请求
    2.Service处理数据访问与业务逻辑
    3.Modules封装业务逻辑代码
    4.Pipes验证请求的数据
    5.Filters处理请求的异常
    6.Guards验证请求的权限
    7.Interceptors拦截请求,增加额外的请求与响应的拦截处理
    8.Respitories 处理与数据库之间的交互

手动搭建的过程

控制器:
首先定义一个AppController类,给这个类加上一个装饰器@Controller(),这个装饰器要从@nestjs/common导入,在AppController类里面定义一个函数getHello方法,返回字符串 ‘hello nestjs’
@Controller(): 装饰器,将AppController类标记为NestJS控制器,控制器负责处理传入的请求和返回的响应
@Get(‘/hello’): 这个装饰器将getHello方法标记为处理HTTP GET请求的路由处理程序,当客户端请求’/hello’路径的时候就会调用此方法
getHello方法:当被调用时,它返回字符串 'hello nestjs’这个字符串会被NestJS自动包装为HTTP响应体,状态码默认为200

@Controller()
class AppController{@Get('/hello')getHello(){return "Hello Nestjs"}
}

模块
@Module:这个装饰器用于定义一个模块,模块是NestJS中组织代码的基本单元,它可以将相关的控制器、服务等组合在一起
在@Module装饰器中,我们传递了一个对象,其’controllers’属性是一个数组,包含了属于这个模块的控制器这里只有AppController,模块还可以包含其他属性,如’providers’(提供者,如服务),‘imports’(导入其他模块)等

@Module({controllers: [AppController]
})
class AppModule{}

启动应用

async function bootstrap(){// 创建应用const app = await NestFactory.create(AppModule)await app.listen(3000,()=>{console.log('server is running at http://localhost:3000')})}
bootstrap()

bootstrap是一个异步函数,它是整个应用程序的入口点
NestFactory.create(AppModule):使用NestFactory创建一个Nest应用实例,根模块为AppModule
app.listen:启动HTTP服务器,监听3000端口,当服务器成功启动后,会执行回调函数,打印出运行信息

import { Controller, Get, Module } from "@nestjs/common"
import { NestFactory} from "@nestjs/core"
// 指定当前类为nest控制器
@Controller()
class AppController{@Get('/hello')getHello(){return "Hello Nestjs"}
}
@Module({controllers: [AppController]
})
class AppModule{}
async function bootstrap(){// 创建应用const app = await NestFactory.create(AppModule)await app.listen(3000,()=>{console.log('server is running at http://localhost:3000')})}
bootstrap()

完整的工作流程

  1. 启动应用: 执行bootsrap()函数
  2. 创建实例: Nest Factory根据AppModule创建应用
  3. 路由注册:框架扫描AppModule中注册的控制器
  4. 路由绑定:将AppController的/hello路由注册到路由表
  5. 监听端口:启动HTTP服务器监听3000端口
  6. 处理请求:当访问http://localhost:3000/hello时:
    执行AppController.getHello()
    返回Hello Nestjs
http://www.dtcms.com/wzjs/345885.html

相关文章:

  • 成都网站建设比较好的公司软文自助发布平台系统
  • 不会编程如何做自己的网站经典广告推广词
  • 旅游网页设计成品免费下载山东seo推广
  • 兰州做网站es5188知乎seo优化
  • 项目计划书ppt模板免费windows优化大师会员兑换码
  • wordpress 开发实例北京seo推广服务
  • 购物网站建设开题报告深圳百度搜索排名优化
  • 上海营销平台网站建设360推广登录入口官网
  • wordpress 制作关键词排名优化网站
  • 淮安哪有专业做网站的公司搜索引擎网站有哪些
  • 简单网站后台模板深圳营销型网站
  • 什么网站可以做期刊封面网站推广的意义和方法
  • 内蒙古网站建设公司嘉兴seo外包平台
  • 广州哪里能拿到便宜烟草企业网站seo推广方案
  • 2017政府网站建设不足郑州seo优化顾问
  • 网站建设那个好seo标签优化
  • 网站更新维护怎么做东莞营销型网站建设
  • 网站开发 flex手机百度正式版
  • 江门门户网站软文营销代理
  • 兰州建设厅评职称网站互联网广告投放代理公司
  • 网站开发建设明细报价表谷歌官方网站首页
  • 建网站需要买服务器吗产品营销方案案例范文
  • 网业安全防护如何关闭学seo优化
  • 网站建设层级图开网店如何运营和推广
  • 个人网站怎么备案可以做哪些百度推广关键词匹配模式
  • 国外专卖模板的网站朝阳seo搜索引擎
  • 昆明网站建设网站cpc广告接单平台
  • 许昌网站建设汉狮怎么样广告投放平台排名
  • 找百度做的网站可以过户旺道seo推广
  • 做网站设计管理的专业深圳seo公司