已发布·持续改进
Framework · 2017 年发布
NestJS 是用 TypeScript 构建模块化、依赖注入式 Node.js 服务器的框架,默认运行在轻量级 Web 框架 Express 之上。
Express 是 Node.js 上使用最广泛的 Web 框架,只提供路由和中间件这一精简内核,应用结构交由开发者自行决定。NestJS 于 2017 年首次发布,是基于 TypeScript 和装饰器的服务器框架,提供模块、控制器、提供者和依赖注入等结构。Nest 将 HTTP 处理交给平台适配器,默认使用 Express,因此 Nest 应用在内部就是一个 Express 服务器,也可以直接使用 Express 中间件。
Express 适合小型 API、原型以及希望自己设计结构的项目。NestJS 则在代码和团队规模扩大时更显优势,例如需要长期维护的 REST 和 GraphQL API、微服务和实时服务器。管道负责校验输入,守卫负责权限检查,框架还能与基于 Jest 的测试以及 TypeORM、Prisma 等 ORM 自然集成。
安装 Node.js 后,Express 只需 npm install express 和几行代码即可开始。NestJS 建议先用 Nest CLI 创建项目,再从官方文档的 First steps 开始按顺序阅读。先掌握 Express 的请求、响应和中间件概念,更容易理解 Nest 在其上增加了什么。
把功能拆分为模块,通过构造函数注入服务等提供者,从而降低耦合、方便测试。
用 @Controller、@Get、@Body 等装饰器声明路由和输入,再用管道、守卫和拦截器添加通用逻辑。
默认 HTTP 平台是 Express,其中间件生态可直接沿用,需要时也可以切换到 Fastify。
单独使用时,Express 以路由和中间件这一小内核,让你快速搭建任意结构的服务器。
NestJS 和 Express 都运行在 Node.js 上。从 nodejs.org 安装 LTS 版本,并确认 node 和 npm 能显示版本号。
node --version && npm --version全局安装负责创建项目和生成代码的官方命令行工具。如果只使用 Express,可跳过此步,在项目目录中运行 npm install express。
npm i -g @nestjs/cli创建新项目并以监视模式启动开发服务器。CLI 会询问使用哪个包管理器,完成后即可在 http://localhost:3000 看到响应。
nest new hello-nest && cd hello-nest && npm run start:dev用 nest new 创建的项目中自带这个控制器。@Controller() 将类注册为控制器,@Get() 把根路径的 GET 请求映射到 getHello 方法。AppService 通过构造函数注入,而 src/main.ts 用 AppModule 创建应用并在 3000 端口监听。
src/app.controller.ts
import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello(): string {
return this.appService.getHello();
}
}
npm run start:dev共六章,带你从安装一步步了解 NestJS · Express 的核心概念。
在这里提问、分享经验,交流关于 NestJS · Express 的看法。
还没有讨论。来发起第一个吧。
0 条评论
登录 · 登录后即可发表评论。
来发表第一条评论吧。