第 08 节:收束成一个小站:路由、检查、下一步
本节 objectives:
- 能规划一个包含 3 条路线的小型 Next.js 站点。
- 能写一个最小 Route Handler,理解它和页面的区别。
- 能运行
npm run build,用构建结果发现基础问题。
学完基础的标志不是背名词,是能收束
Next.js 基础不是「知道很多 API 名字」。更可靠的标志是:你能决定页面放哪里、组件怎么拆、哪块需要客户端交互、数据在哪取、最后怎么检查项目。
这一节做一个小站蓝图,再补一个 Route Handler。Route Handler 用 route.ts 为某个路径处理请求,和 page.tsx 渲染页面不同1。它不是每个小站都必需,但知道它存在,能帮你理解 Next.js 不只渲染 HTML,也能写服务端端点。
讲解
最终小站只保留三条主路线。
建议做 /、/projects、/posts。首页介绍学习目标;作品页用本地数组渲染;文章页用服务器取数。三条路线刚好覆盖本课核心,不会变成大杂烩。
Route Handler 返回数据,页面显示界面。
app/api/health/route.ts 对应 /api/health。访问它时,得到 JSON 响应,不是 React 页面。官方文件约定文档把 route 文件作为处理 HTTP 方法的入口1。
构建检查比刷新浏览器严格。
npm run dev 适合边写边看;npm run build 会做生产构建检查。Next CLI 文档把 next build 用于创建优化后的生产构建2。基础阶段每完成一个小站,至少跑一次 build。
下一步不是继续堆功能,而是补薄弱层。
如果你 JSX 还常报错,回第 2 节;如果路由混乱,回第 3 节;如果一做交互就想全站 "use client",回第 6 节。基础扎稳后,再学数据库、认证、部署。
跟我做一遍(worked example)
目标:加一个健康检查端点,再运行构建。
- 新建
app/api/health/route.ts:
- 启动开发服务器后,打开:
你应该看到 JSON,不是网页。
- 停掉开发服务器或另开终端,运行:
如果构建通过,说明你的项目至少没有明显的语法、导入、路由构建错误。如果失败,先读第一条报错,定位到文件和行号,不要同时改五个地方。
换你补全(faded example)
下面要写一个 /api/profile 端点,返回你的学习者信息。补全函数名、返回方法和 JSON 字段。
参考答案:
关键判断点:Route Handler 用导出的 HTTP 方法函数,这里是 GET;返回的是 Response.json(...),不是 JSX。
小结 + 通向下一节
你已经完成 Next.js 基础的第一轮:项目、组件、路由、布局、数据、样式、交互、服务端取数、Route Handler、构建检查。下一步建议用同一个小站继续做两件事:第一,把每个页面内容换成你真实关心的主题;第二,每新增一个功能前先判断它属于页面、组件、客户端交互、服务端取数还是 API 端点。
Footnotes
-
Next.js Route Handlers — https://nextjs.org/docs/app/api-reference/file-conventions/route ↩ ↩2
-
Next.js CLI — https://nextjs.org/docs/app/api-reference/cli/next ↩
练习
Level 1:做最终小站清单。
做法:在笔记里写一张表,列出 /、/projects、/posts、/api/health 四条路径,每条写「文件位置」「显示什么或返回什么」。
提示 1
路径里有 /api/ 时,先想 Route Handler。
提示 2
要显示完整页面时,先想 page.tsx。
Level 2:跑一次交付前检查。
做法:在项目根目录运行 npm run build,把结果记录到笔记。失败也算练习,但要写下第一条错误。