初识nestjs(day 1)

80 阅读2分钟

20210604141204744.png

1.概述

Nest 是一个用于构建高效,可扩展的 Node.js 服务器端应用程序的框架,结合了 OOP(面向对象编程)的开发理念,内置并完全支持 TypeScript。nestjs 还是一个spring MVC 的风格 其中有依赖注入 IOC 控制反转,借鉴了Angualr的底层代码,底层内置框架Express.js(默认express)

2.创建项目

 // 全局安装nest
npm i -g @nestjs/cli

// 通过cli创建nest项目
nest new project-name 

项目创建完成,具体文件如下

image.png

首先来看package.json文件

image.png

开发阶段主要使用start:dev启动项就行,带有watch监听热启动,安装好依赖后启动指令便可以用http://localhost:3000/ 去访问啦

然后转到src目录下,主要是看这几个文件

main.ts 导入主模块创建nest实例,监听端口为3000,调用这个启动函数。

image.png

app.service.ts 服务处理文件,数据库增删改查和业务逻辑的处理,当然后续相同的逻辑代码走封装复用

image.png

app.controller.ts 分发路由文件,用来接口定义调用service的处理函数

image.png

app.module.ts 模块管理器,后续业务的繁杂会有许多子模块,方便后续拓展维护

image.png

app.controller.spec.ts 测试文件,后续建子模块会有很多带有.spec.ts的文件,开发中简洁文件可以删掉,也可以根据自己进行单元测试,问题不大。

image.png

注意:上述文件中出现了很多@装饰器不要慌,后续会讲装饰器也会用到各种各样的装饰器。 这是项目主入口和主模块的介绍,后续随着业务需求会有许多子模块,为了规范开发,后续的业务逻辑和路由在各自的模块中完成,利用模块引入调用来实现功能,就是IOC(控制反转)和DI(依赖注入)的设计模式。

3.nest指令

// 查看nest指令
nest -help

image.png

创建一个user模块

nest g res user

image.png

image.png

运用命令直接生成crud模版,后续会讲到dto和entities文件的用处

image.png