NestJS介绍
中文官网地址:Nest (NestJS)
简单的讲就是一个比较流行的通过TypeScript来写后端应用程序的开发框架,横向对比的话类似于egg。比Koa和Express这种接近源生框架更加好用,集成了很多比较实用的功能,而且写法(注解,模块)上简单易懂,易于维护。
学习NestJS 的一些前提条件
- 有前端开发经验,懂得JavaScript基础语法
- 有一定的NodeJS基础
- 了解docker相关的知识(可选),方便创建关系/非关系型数据库等
- 了解面向对象的一些抽象概念
- 知道
TypeScript
创建一个简单项目
- 全局安装nestjs,然后创建一个项目,然后选择
pnpm,然后等待创建项目。
$ npm i -g @nestjs/cli
$ nest new project01
- 之后就会生成以下代码文件:
| 文件名 | 说明 |
|---|---|
app.controller.ts | 带有单个路由的基本控制器。 |
app.controller.spec.ts | 针对控制器的单元测试。 |
app.module.ts | T应用程序的根模块(root module)。 |
app.service.ts | 具有单一方法的基本服务(service)。 method. |
main.ts | 应用程序的入口文件,它使用核心函数 NestFactory 来创建 Nest 应用程序的实例 |
- 打开
main.ts, 代码如下,在一个异步调用函数里创建了Nest实例,并且监听了3000端口
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
平台选择
目前支持两个 HTTP 平台:express 和 fastify。 您可以根据您的需求选择最适合平台。通俗的讲,express的社区资源更全面,解决方案最多,fastify性能更好,对性能有要求的推荐使用。根据不同的用途来选择相应的平台就行了。
platform-express | Express 是一个著名的、极简的、专为 node 开发的 web 框架。它久经考验、适用于生产环境的软件库,并且拥有大量的社区资源。默认情况下使用 @nestjs/platform-express 软件包。许多用户对 Express 都很满意,并且无需采取任何操作即可启用它。 |
|---|---|
platform-fastify | Fastify 是一个高性能且低开销的框架,高度专注于提供最高的效率和速度。点击 这里 查看它的使用文档。 |
运行应用程序
执行下面,并通过浏览器访问网页,便可看到内容。
$ npm run start