索引
学习是一件很长很长的事情,但是是收益很大很大的事情,每天进步一点点,一辈子就是无数的成长。学习也有方法,把一个大的知识分块,每次学习一块,不但学习了知识,还增强了信心,让我们有成就感,就坚持下来了,慢慢的就变强啦!
框架介绍
基于Node.js的框架主要有以下几个:
- 基础框架,基本上还是以express、koa、Fastify.js等为主
- egg.js,以MVC为架构的web框架
- nest.js,以Ioc 控制反转作为核心概念的web框架,对typescript支持友好
- nuxt.js,以Vue.js作为SSR服务端渲染核心的web框架,最新是Nuxt3(以Vue3为核心)
- next.js,以React.js作为SSR服务端渲染核心的
- Meteor.js,full-stack javascript平台,最大的特点是当数据发生改变的时候,所有依赖该数据的地方自动发生相应的改变。
- Fastify.js,号称最快的node.js web框架,特点是内置了基于 JSON schema 的 validation 和 serialization,比JSON.stringify还快的json序列化算法,虽然是借助借助第三方库 ajv。
- strapi.js,快速生成API接口的web框架,同时实现各种后端所需要的鉴权、权限、文件上传等轮子
开发准备
- 安装 node 版本 大于 14 就行 Node.js 下载地址
Hellow World
创建新项目
1.npm 安装全局包
npm i -g @nestjs/cli
2.cli 创建新项目,选择 pnpm 版本,先看一下 pnpm 使用说明
nest new blog-nestjs
目录结构
MVC 结构
src
|- app.controller.spec.ts // controller 的测试文件
|- app.controller.ts // controller,路由和预处理
|- app.module.ts // module,为模块注册用
|- app.service.ts // service 真正的逻辑
|- main.ts // 程序入口
module
controller
运行项目
- 安装依赖
pnpm i
2.运行项目
pnpm start:dev
3.浏览器访问项目 访问:http://localhost:3000/
生成 Nestjs 模块
nest 自带了命令直接生成符合 nestjs 模块格式的命令
nest g controller students
nest g service students
nest g module students
执行命令之后的目录格式
src
|- app.controller.spec.ts
|- app.controller.ts
|- app.module.ts
|- app.service.ts
|- main.ts
|- students/
|- students.controller.spec.ts
|- students.controller.ts
|- students.module.ts
|- students.service.spec.ts
|- students.service.ts
开发
// students.service.ts
import { Injectable } from '@nestjs/common';
@Injectable()
export class StudentsService {
ImStudent() {
return 'Im student';
}
}
// students.controller.ts
import { Controller, Get } from '@nestjs/common';
import { StudentsService } from './students.service';
@Controller('students')
export class StudentsController {
constructor(private readonly studentsService: StudentsService) {}
@Get('who-are-you')
whoAreYou() {
return this.studentsService.ImStudent();
}
}
浏览器访问: ✅ http://localhost:3000/students/who-are-you
下章会细化接口
完整实例可以在我的 Github 上找到
如果喜欢文章,不妨点个赞。
转载:郭先生的技术坞