为什么现代 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个真实场景让你代码更优雅》

相关推荐
章豪Mrrey nical5 小时前
前后端分离工作详解Detailed Explanation of Frontend-Backend Separation Work
后端·前端框架·状态模式
hh随便起个名6 小时前
力扣二叉树的三种遍历
javascript·数据结构·算法·leetcode
派大鑫wink6 小时前
【JAVA学习日志】SpringBoot 参数配置:从基础到实战,解锁灵活配置新姿势
java·spring boot·后端
我是小路路呀6 小时前
element级联选择器:已选中一个二级节点,随后又点击了一个一级节点(仅浏览,未确认选择),此时下拉框失去焦点并关闭
javascript·vue.js·elementui
程序员爱钓鱼7 小时前
Node.js 编程实战:文件读写操作
前端·后端·node.js
xUxIAOrUIII7 小时前
【Spring Boot】控制器Controller方法
java·spring boot·后端
Dolphin_Home7 小时前
从理论到实战:图结构在仓库关联业务中的落地(小白→中级,附完整代码)
java·spring boot·后端·spring cloud·database·广度优先·图搜索算法
zfj3217 小时前
go为什么设计成源码依赖,而不是二进制依赖
开发语言·后端·golang
weixin_462446237 小时前
使用 Go 实现 SSE 流式推送 + 打字机效果(模拟 Coze Chat)
开发语言·后端·golang
JIngJaneIL7 小时前
基于springboot + vue古城景区管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端