nestjs从后端来看就是类springboot的一个框架,使用ioc管理对象关系,因为很多标准已经定义好,所以无需从头开始(像express,koa就需要从头开始,很多规范要人为约定,在开发大型项目时候很麻烦,而且迭代到一定时期,那些规范早就被扔到西伯利亚了)。故此就我个人而言是推荐java后端开发者使用nestjs.
推荐阅读:
- 官方文档已经足够建立基本知识体系,所以阅读文档是不可少的。第一次阅读时可能只能记住一个大概,没关系,后面用的时候脑子里大概知道有这个东西再去查就可以了。建议使用中文文档和英文文档结合看,英文文档要更新一些。
- 如果说一开始上文档觉得头疼,也可以选择先观看视频。
在上面的环节完成之后,大概已经对这个东西已经了解了一个轮廓。那么下面就可以上手了。
nestjs底层框架可以选择express和fastify.
- express:更多的解决方案。
- fastify:更好的效率(对比数据,仅供参考,因为你的代码也会影响最终效率)
在做bff的时候建议使用fastify,因为功能简单。如果说你的项目想要完整使用nodejs的各种功能。建议使用express,因为express成熟的解决方案更多,不用很费劲的去找解决方案。如果说你喜欢研究,也可以强行使用fastify,并且自己查询或者自己实现解决方案。
本教程将以fastify作为底层框架作为demo进行介绍其使用方式
1.搭建项目
1.1安装脚手架
npm i -g @nestjs/cli
1.2使用脚手架创建一个自己的项目
中间会出现一些基础选项,选择哪些包管理器等,这里使用npm.
nest new nest-demo
一个基本的项目框架诞生了
1.3将底层框架换成fastify
框架创建默认使用的是express,如果需要fastify,需要自己替换.
首先安装fastify依赖项
#安装fastify依赖项
npm i --save @nestjs/platform-fastify
#卸载express依赖项(可选操作,这里因为后面不会使用到express,就卸载了)
npm uni @nestjs/platform-express
修改main.ts下的配置为使用fastify
不同版本的nestjs修改内容可能不一样建议自己看看官网修改教程
import { NestFactory } from '@nestjs/core';
import { FastifyAdapter, NestFastifyApplication } from '@nestjs/platform-fastify';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create<NestFastifyApplication>(
AppModule,
new FastifyAdapter()
);
await app.listen(3000, '0.0.0.0');
}
bootstrap();
启动一下看到启动成功即可
npm run start:dev