为什么现代 Node 后端都选 NestJS + TypeScript?这组合真香了

01 前言

上个月,我表弟他们公司的 Express 项目越来越乱,改个字段全爆红,三个月没敢上线。

于是连夜试了 NestJS + TypeScript。

两周后,老板笑了:"早用早下班,你们怎么不早点干?"

02 到底好在哪?

1. 目录一眼看懂

Express:

css 复制代码
routes/
  user.js
  order.js
  ...

看得想睡觉。

NestJS:

css 复制代码
src/
  user/
    user.controller.ts
    user.service.ts
    user.entity.ts
  order/
    ...

看起来更规整。

2. 类型写得爽,改得也爽

以前:

js 复制代码
function createUser(data) {
  // 根本不知道 data 里有没有 email
}

现在:

ts 复制代码
interface CreateUserDto {
  email: string;
  age?: number;
}

写错会出红线,编译不过直接报错。

3. 装饰器

路由、校验、权限,一行搞定:

ts 复制代码
@Post()
@UseGuards(AuthGuard)
create(@Body() dto: CreateUserDto) {
  return this.userService.create(dto);
}

再也不用写一堆if (!dto.email)

03 完整小案例

简单搭建一个项目,这里我用的是pnpm

1. 起项目

bash 复制代码
pnpm i -g @nestjs/cli
nest new todo-app
cd todo-app

如图:

直接启动

bash 复制代码
pnpm run start

启动成功后打开地址http://localhost:3000/

非常简单!用编辑器打开可以看到,我们的项目结构是如此的清晰

2. 生成模块

该命令可以生成对应的模块代码

bash 复制代码
nest g res todo

REST API,回车到底就可以。

接下来要写什么业务,就可以直接开干了!

完事儿!10 分钟,后端接口搞定。

感兴趣的朋友可以看看NestJS中午官方文档

下期更新数据库连接和增删改查等相关功能,请道友点个赞吧,你的点赞是我最大的鼓励!

我是大华,专注分享前后端开发的实战笔记。关注我,少走弯路,一起进步!

📌往期精彩

《Elasticsearch 太重?来看看这个轻量级的替代品 Manticore Search》

《别再if套if了!Java中return的9种优雅写法》

《别学23种了!Java项目中最常用的6个设计模式,附案例》

《写给小公司前端的 UI 规范:别让页面丑得自己都看不下去》

《Vue3+TS设计模式:5个真实场景让你代码更优雅》

相关推荐
Hi_kenyon19 小时前
理解vue中的ref
前端·javascript·vue.js
野犬寒鸦20 小时前
从零起步学习并发编程 || 第一章:初步认识进程与线程
java·服务器·后端·学习
我爱娃哈哈20 小时前
SpringBoot + Flowable + 自定义节点:可视化工作流引擎,支持请假、报销、审批全场景
java·spring boot·后端
jin12332220 小时前
基于React Native鸿蒙跨平台地址管理是许多电商、外卖、物流等应用的重要功能模块,实现了地址的添加、编辑、删除和设置默认等功能
javascript·react native·react.js·ecmascript·harmonyos
2501_9209317020 小时前
React Native鸿蒙跨平台医疗健康类的血压记录,包括收缩压、舒张压、心率、日期、时间、备注和状态
javascript·react native·react.js·ecmascript·harmonyos
橙露21 小时前
React Hooks 深度解析:从基础使用到自定义 Hooks 的封装技巧
javascript·react.js·ecmascript
2501_9209317021 小时前
React Native鸿蒙跨平台使用useState管理健康记录和过滤状态,支持多种健康数据类型(血压、体重等)并实现按类型过滤功能
javascript·react native·react.js·ecmascript·harmonyos
Ulyanov21 小时前
从静态到沉浸:打造惊艳的Web技术发展历程3D时间轴
前端·javascript·html5·gui开发
李梨同学丶1 天前
0201好虫子周刊
后端
VT.馒头1 天前
【力扣】2625. 扁平化嵌套数组
前端·javascript·算法·leetcode·职场和发展·typescript