NestJS入门教程系列一
介绍
Nest(NestJS)是用于构建高效,可扩展的Node.js服务器端应用程序的框架。它使用渐进式JavaScript,内置并完全支持TypeScript(但开发人员仍然能够使用JavaScript),而且采用了OOP(面向对象编程),FP(函数式编程)和FRP(函数响应式编程)的元素特性。
底层上,Nest选择了Express(默认)之类的健壮的HTTP Server框架,并且还可以选择将其配置为使用Fastify,考虑和兼顾了流行和高性能两种口味。
Nest在这些常见的Node.js框架(Express / Fastify)基础上进行了抽象,但也直接向开发人员公开了它们的API。这样我们仍然可以自由使用Express框架的大量第三方模块。
哲学
近年来,由于使用了Node.js,JavaScript已成为前端和后端应用程序的Web“通用语言”。前端开发领域也顺势产生了诸如Angular,React和Vue之类的出色项目,这些项目提高了开发人员的工作效率,并允许创建快速,可测试和可扩展的前端应用程序。但是,尽管拥有了大量用于Node(服务器端JavaScript)的类库,助手和工具,但它们都无法有效解决架构的主要问题。
Nest提供了一种开箱即用的应用程序体系结构,该体系结构允许开发人员和团队创建高度可测试,可伸缩,松散耦合且易于维护的应用程序。该架构在很大程度上受到了Angular的启发。
安装
$ npm i -g @nestjs/cli
$ nest new project-name
或者使用官方脚手架项目:
$ git clone https://github.com/nestjs/typescript-starter.git project
$ cd project
$ npm install
$ npm run start
打开浏览器:http://localhost:3000/,即可访问到页面。
最后
NestJS实现了Java Spring中的依赖注入模式,配合TS,让人恍惚间有了一种在写Java的感觉。前后端一种语言一把梭的感觉,很上头。最重要的是,在Nest整体架构的加持下,代码组织,单一职责,很清晰,也很容易划分。特别是在Express没有官方推荐的架构实践的情况下,Nestjs给了我们多一个选择。
未完待续~