NestJs学习之旅(9)——拦截器

2019年9月10日 · 405 字 · 2 分钟

本文是NestJs的第九篇,讲解拦截器。 拦截器是一个实现了NestInterceptor接口且被**@Injectable**装饰器修饰的类。 拦截器是基于AOP编程思想的一种应用,以下是常用的功能: 在方法执行之前或之后执行额外的逻辑,这些逻辑一般不属于业务的一部分 转换函数执行结果 转换函数执行时抛出的异常 扩展函数基本行为 特定场景下完全重写函数的行为(比如缓存拦截器,一旦有可用的缓存则直接返回,不执行真正的业务逻辑,即业务逻辑处理函数行为已经被重写) 拦截器接口 每个拦截器都需要实现NestInterceptor接口的**intercept()**方法,该方法接收两个参数。方法原型如下:

NestJs学习之旅(8)——管道

2019年8月28日 · 387 字 · 2 分钟

本文是NestJs学习之旅的第八篇,讲解管道。 管道 熟悉Linux命令的伙伴应该对“管道运算符”不陌生。 ls -la | grep demo “|” 就是管道运算符,它把左边命令的输出作为输入传递给右边的命令,支持级联,如此一来,便可以通过管道运算符进行复杂命令的交替运算。

NestJs学习之旅(7)——路由守卫

2019年8月27日 · 457 字 · 3 分钟

本文是NestJs的第七篇,讲解路由守卫。 传统的Web应用中去检测用户登录、权限判断等等都是在控制器层或者中间件层做的,而在目前比较推荐的模块化与组件化架构中,不同职责的功能建议拆分到不同的类文件中去。 通过前几篇的学习可以发现NestJs在这方面做的很好,传统的express/koa应用中,需要开发者去思考项目结构以及代码组织,而NestJs不需要你这样做,降低了开发成本,另外也统一了开发风格。 路由守卫 熟悉Vue,React的伙伴应该比较熟悉这个概念,通俗的说就是在访问指定的路由之前回调一个处理函数,如果该函数返回true或者**调用了next()**就会放行当前访问,否则阻断当前访问。

NestJs学习之旅(6)——异常处理

2019年8月26日 · 405 字 · 2 分钟

本文是NestJs的第六篇,讲解异常处理。 传统的异常处理 在前面的内容中我们介绍了NestJs的几大常用组件,但是有一点没有做出说明,当我们的应用需要中断此次请求且输出错误信息时,我们需要怎么做? 这个问题有两种解决办法: services层直接返回中断请求的响应对象,controller直接输出该对象即可

NestJs学习之旅(5)——中间件

2019年8月23日 · 271 字 · 2 分钟

本文是NestJs学习之旅的第五篇,讲解中间件。 中间件 中间件是在路由处理程序之前调用的函数。中间件函数可以访问请求和响应对象。 使用过koa和express的朋友应该知道,中间件是一个很核心的功能,尤其是koa,核心就是中间件,连路由功能都是由中间件提供的。 中间件可以提供以下功能:

NestJs学习之旅(4)——模块系统

2019年8月22日 · 270 字 · 2 分钟

本文是NestJs学习之旅的第四篇,讲解模块系统。 模块 NestJs中模块是构建和组织业务单元的基本元素。使用@Module()装饰模块来声明该模块的元信息: 本模块导出哪些服务提供者 本模块导入了哪些依赖模块 本模块提供了哪些控制器 每个NestJs至少有一个跟模块,这个就是app.

NestJs学习之旅(3)——服务提供者

2019年8月21日 · 363 字 · 2 分钟

本文是NestJs学习之旅的第三篇,讲解服务提供者。 简介 服务提供者是NestJs一个非常重要的概念,一般来说,被装饰器@Injectable()修饰的类都可以视为服务提供者。服务提供者一般包含以下几种: Services(业务逻辑) Factory(用来创建提供者) Repository(数据库访问使用) Utils(工具函数) 使用 下文中将以Services来说明服务提供者的具体使用。

NestJs学习之旅(2)——控制器

2019年8月20日 · 378 字 · 2 分钟

本文是NestJs学习之旅的第二篇,主要讲解控制器。 MVC 说到控制器就不得不说经典的MVC架构。 MVC模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。 控制器(Controller)- 负责转发请求,对请求进行处理,处理完毕后输出响应。 视图 (View) - 界面设计人员进行图形界面设计 模型 (Model)- 数据库查询和业务逻辑 可以看到控制器起着承上启下的作用,是Web开发中必备的一环,视图和模型倒不是必须的,理由如下:

NestJs学习之旅(1)——快速开始

2019年8月19日 · 179 字 · 1 分钟

本文是NestJs学习之旅的第一篇,简要介绍一下NestJs框架,搭建一个Hello World应用。 介绍 Nest(或NestJS)是一个用于构建高效,可扩展的Node.js服务器端应用程序的框架。它使用渐进式JavaScript,内置并完全支持TypeScript(但仍然允许开发人员使用纯JavaScript编写代码)并结合了OOP(面向对象编程),FP(功能编程)和FRP(功能反应编程)的元素。 import { Controller, Get } from '@nestjs/common'; @Controller('cats') export class CatsController { @Get() findAll(): string { return 'This action returns all cats'; } } 熟悉Java的同学应该有似曾相识的感觉,SpringBoot中大量使用注解来简化开发。现在,使用基于ES6装饰器构建的NestJs框架,你也可以做到!