Lei Xia

Sr. Software Engineer | Solution Architect

抒写代码,尽享生活,筑就未来。

订阅 · 赞赏

avatar

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直接输出该对象即可

socks5协议详解

2019年8月24日 · 355 字 · 2 分钟

Socks5代理协议 或许你没听说过socks5,但你一定听说过SS,SS内部使用的正是socks5协议。 socks5是一种网络传输协议,主要用于客户端与目标服务器之间通讯的透明传递。 该协议设计之初是为了让有权限的用户可以穿过防火墙的限制,访问外部资源。 1. RFC地址 socks5协议规范rfc1928 socks5账号密码鉴权规范rfc1929 2.

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框架,你也可以做到!

TS简明教程(4)

2019年8月6日 · 295 字 · 2 分钟

本文是TS简明教程的第四篇,讲解装饰器。 装饰器 装饰器是一种特殊类型的声明,它能够被附加到类声明,方法,访问符,属性或参数上。 装饰器使用@expression这种形式,expression必须是一个函数,它会在运行时被调用,被装饰的声明信息做为参数传入。 Typescript中的装饰器是一项实验性功能,需要在tsconfig.json中开启该特性

TS简明教程(3)

2019年7月30日 · 248 字 · 2 分钟

本文是TS简明教程的第三篇,讲解泛型。 泛型 泛型程序设计(generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。 泛型的出现有效的降低了代码重复率,同时也能很好的保留类型信息,降低运行期崩溃的概率。