如果你是一个前端开发者,那么 node 是一定避免不了,因为 nest
是使用 node
作为后端语言,那么你可以很快上手
如果你是一个后端开发者,那么模块化结构或者 MVC
一定是熟悉的,因为 nest
也使用了 MVC
架构, 那么也可以很快上手
那么什么是 nest ?
什么是 nest
Nest(NestJS)是一个用于构建高效、可扩展的Node.js服务器端应用程序的框架。
它使用渐进式JavaScript,采用TypeScript构建并完全支持TypeScript(但仍然允许开发人员使用纯JavaScript编码),并结合了OOP(面向对象编程)、FP(函数式编程)和FRP(函数式响应式编程)的一个开箱即用框架。
总之一句话,简单又高效,不论你是前端开发者想开发服务端,还是后端开发者想进军node,nest 都是一个不错的选择
启动
要开始,您可以使用Nest CLI构建项目,或者克隆启动项目(两者将产生相同的结果)。
请确保您的操作系统上安装了Node.js(版本>= 16)。
使用cli安装
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
创建完成之后,目录结构如下
主要聚焦于 src
文件名 | 功能 |
---|---|
app.controller.ts | 一个基本的控制器,只有一个路由。 |
app.controller.spec.ts | 控制器的单元测试。 |
app.module.ts | 应用程序的根模块。 |
app.service.ts | 一个基本的服务与一个单一的方法。 |
main.ts | 应用程序的入口文件,它使用核心函数NestFactory 创建Nest应用程序实例。 |
可以使用 npm run dev
或者 npm run start:dev
进行启动, 区别在于 dev
是当你修改文件时不会触发【热更新】,修改文件之后需要再次运行,为了方便开发,使用 热更新
npm run start:dev
默认端口是 3000
,所以可以打开浏览器并输入 http://localhost:3000/
ok, 到此为止,一个 nest 服务已经正式启动成功!
更近一步
不需要理解具体代码,( 后面章节会详细讲到 ) 只需要跟着流程走一遍,大致了解
入口文件 main.ts
引入了 app.module
文件, 并使用函数 bootstrap
启动应用
在 app.module
中是暴露出一个名为 AppModule
的一个类,同时在这个类中使用了 AppServie
和 AppController
可以看到,在 main.ts
中使用 AppModule
启动,在AppModule
中统一管理了 AppController
与 AppService
,在 AppController
中可以直接使用 AppService
总结
-
nest 是一个开箱即用的 node 框架,默认使用 express 作为底层,可以切换为 fastify。使用 MVC 架构,有利于模块化和职责分离
-
main.ts 作为整个应用的启动入口,引入根模块
AppModule
,在模块中又引入了AppController
与AppService