466 字
2 分钟
全栈第一步:前后端打通
核心思考
-
全栈的本质是“数据流转”: 从宏观架构来看,后端工程相当于承担着“数据总线”与“管理中枢”的角色。
- 数据库 (SQLite):数据持久化下层,承载存储职责。
- Prisma:ORM 工具,负责数据映射与数据库交互。
- Express:网关或控制层,处理 HTTP 请求与数据分发。
- 前端 (Vue):视图层,获取 JSON 序列化数据并渲染为客户端 UI。 打通全链路后,技术栈从单一孤岛合并成了数据流闭环。
-
TypeScript 的约束一致性: 当前后端均切入 TypeScript 体系后,类型定义能够实现复用。在服务端定义的数据模型(如结构体),能够让前端在进行网络请求处理时直接做类型推断,极大降低了沟通成本与调试阻力。
知识内化(技术栈复盘)
🛠️ 后端基架 (Node + Express + TS)
从零搭建了一个标准的 TS 后端项目:
- 环境配置:
npm init起手,装express、cors、dotenv三件套。 - TS 加持:配置
tsconfig.json,用ts-node直接运行 TS 代码,配合nodemon实现热更新(改一行代码,服务自动重启,不用手动切终端)。 - ORM 神器 (Prisma):
- 不用写 SQL 语句,直接定义
schema.prisma模型。 npx prisma db push一键同步数据库结构。- 写了个
seed.ts脚本,一键注入测试数据,再也不用手动插数据了。
- 不用写 SQL 语句,直接定义
🔗 前后端通信 (The Bridge)
- 跨域 (CORS) 与 代理 (Proxy):
虽然后端装了
cors,但在开发环境我用了 Vite 的server.proxy。- 前端请求
/api/songs-> Vite 转发 ->localhost:3000/api/songs。 - 这样既解决了跨域,又让前端代码看起来像是在请求同源接口。
- 前端请求
- 数据消费 (Pinia):
- 在 Store 里写
fetchSongList,拿到数据存进state。 - 配合
pinia-plugin-persistedstate,刷新页面数据还在,体验极佳。
- 在 Store 里写
全栈第一步:前后端打通
https://blog.moxiaoshuai.fun/2025-12-全栈第一步前后端打通/ 部分信息可能已经过时




