这是我参与8月更文挑战的第11天,活动详情查看:8月更文挑战
近期因开始往全栈方向发展,接触新的项目的技术栈的框架是nextjs、typescript等。所以接下来的将持续学习并更新相关技术栈内容。
Nestjs
Nest是一个NodeJS服务端框架。
NestJs提供架构主张,有一套自己的架构模式,开发者需按照NestJS要求的架构来组织代码。
优点:构建高效、可靠的、高可拓展、松散耦合、易于测试
eg: Express/Koa/Fastify仅提供HTTP服务器封装和异步流程串并行的基础框架
Nest是Nodejs版的Spring框架
- 基于Express/Fastify封装Http请求和路由
- 支持其他Web框架或库
- 使用TypeScript
- 使用了OOP、FP、FRP相关理念,
- 使用依赖注入,面向切面编程等相关设计思路
Hello world
新的开始,新的hello world。
可以根据官网Start,开启第一个项目
通过使用脚手架Nest CLI生成一个简单的项目,如下命令
$ npm i -g @nestjs/cli
$ nest new nest-project # nest-project 是项目名称
将创建nest-project目录,安装node模块和一些其他样板文件,并将创建 一个 src 目录,目录中包含几个核心文件
src
——app.controller.spec.ts
——app.controller.ts
——app.module.ts
——app.service.ts
——main.ts
- app.controller.spec.ts 控制器的单元测试
- app.controller.ts带有单个路由的基本控制器示例。
- app.module.ts应用程序的根模块。
- app.service.ts带有单个方法的基础service层
- main.ts应用程序入口文件。它使用
NestFactory用来创建 Nest 应用实例。
执行命令:npm run start ,则将启动应用程序监听端口号3000。在应用程序运行时,打开浏览器并访问 http://localhost:3000,你将看到 hello world 信息。
NestJS Framework
Client <---request/response---> Controller <---使用service/注入service---> Service <---操作db/返回持久化数据---> Data Access
-
Controller层 负责接收请求和返回响应
- 与路由系统配合使用,路由系统将请求分发给相对应的Controller处理
- Nest路由是去中心化的
-
Service层 负责提供方法和操作,只处理业务逻辑。
-
DataAccess 负责访问数据库中的数据
但是,MVC架构是不同的。
\