简介
NestJs是一个构建高效、可扩展的Node.js服务端应用框架。它使用渐进式JavaScript,支持TypeScript,结合了OOP(面向对象编程)、FP(功能编程)、FRP(功能反应式编程)。
NestJs支持两个框架 Express 和 Fastify。默认使用Express。NestJs对于这两个框架进行了一定的封装,也支持直接使用它们的api,所以给开发者带来很大的自由度。
Express是一个成熟的框架,社区也有很多资源。Fastify是一个高性能低开销的框架,十分关注效率。
NestJs提供了一个开箱即用的框架,能够创建可测试、可扩展、低耦合和易于维护的应用程序。它一部分的思想受到了了Angular的启发。
创建项目
NestJs有一个 cli 脚手架,通过它可以创建项目。
安装脚手架
npm i -g @nestjs/cli
创建工程
nest new project-name
# 创建 TypeScript's strict 严格模式
nest new project-name --strict
内容介绍
上面的命令创建成功后,生成如下的文件·
├── README.md
├── nest-cli.json
├── package.json
├── src
│ ├── app.controller.spec.ts // 控制器的单元测试
│ ├── app.controller.ts // 控制器
│ ├── app.module.ts // 应用的根模块
│ ├── app.service.ts // 基础服务
│ └── main.ts // 入口文件,通过 NestFactory 创建一个核心实例
├── test
│ ├── app.e2e-spec.ts
│ └── jest-e2e.json
├── tsconfig.build.json
└── tsconfig.json
在 maint.ts 文件可以看到通过 NestFactory.create 创建一个应用实例,
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
// 启动服务,端口3000
await app.listen(3000);
}
bootstrap();
启动服务
npm run start
监听服务
npm run start:dev
访问页面
启动成功后,访问 http://localhost:3000/