一、开篇直击痛点:新手也能落地的全栈开发实战
做前端/后端开发,是不是总被这几个问题卡住?
- 写接口不知道怎么符合RESTful规范,接口设计乱糟糟
- 前端页面只会堆div,不懂语义化标签,SEO和维护性差
- 前后端分离开发,不知道怎么从0到1搭建一个完整的用户管理小项目
这篇文章带你60分钟搞定: ✅ 符合RESTful规范的用户数据接口开发(Node.js + json-server) ✅ 用Bootstrap+语义化标签写规范的首页 ✅ 全程模块化开发,代码易维护、易扩展 新手也能跟着敲,代码直接复制就能跑!

二、实战场景:用户管理系统核心需求
我们要做的是一个极简版用户管理系统,核心需求:
- 后端:提供用户CRUD的RESTful接口(查询、新增、修改、删除用户)
- 前端:搭建符合语义化规范的首页,用Bootstrap美化,适配移动端
- 全程遵循模块化原则:一个函数/文件只做一件事
三、后端实战:RESTful风格用户接口开发
3.1 环境初始化(踩坑提醒!)
首先初始化Node.js项目,这里要注意:npm init -y 会直接生成默认的package.json,不用手动填信息,但要确保Node.js版本≥14(低版本可能兼容问题)。
bash
# 1. 创建项目文件夹并进入
mkdir users-chat-ai && cd users-chat-ai
# 2. 初始化package.json
npm init -y
# 3. 安装json-server(快速搭建RESTful接口的神器)
npm i json-server
3.2 编写数据文件(模块化存储)
创建db.json文件(专门存用户数据,一个文件只负责数据存储):
json
{
"users": [
{
"id": 1,
"name": "张三",
"age": 25,
"email": "zhangsan@test.com"
},
{
"id": 2,
"name": "李四",
"age": 28,
"email": "lisi@test.com"
}
]
}
3.3 配置并启动RESTful接口
修改package.json,添加启动脚本(模块化:脚本只负责启动服务):
json
{
"name": "users-chat-ai",
"version": "1.0.0",
"scripts": {
"serve": "json-server --watch db.json --port 3000"
},
"dependencies": {
"json-server": "^0.17.4"
}
}
启动服务:
bash
npm run serve
3.4 RESTful接口测试(核心!)
启动后,接口完全遵循RESTful规范,直接测试:
| 功能 | HTTP方法 | 接口地址 | 示例参数 |
|---|---|---|---|
| 查询所有用户 | GET | http://localhost:3000/users | 无 |
| 查询单个用户 | GET | http://localhost:3000/users/1 | 无 |
| 新增用户 | POST | http://localhost:3000/users | {"name":"王五","age":30,"email":"wangwu@test.com"} |
| 修改用户 | PUT | http://localhost:3000/users/1 | {"name":"张三修改","age":26,"email":"zhangsan_edit@test.com"} |
| 删除用户 | DELETE | http://localhost:3000/users/1 | 无 |
✅ 踩坑提醒:
- POST/PUT请求必须传JSON格式数据,请求头要加
Content-Type: application/json - 动态路由
:id必须传数字,否则会返回404 - json-server启动后,修改db.json会实时生效,不用重启服务
四、前端实战:Bootstrap+语义化标签写首页
4.1 核心原则(必看!)
- 拒绝div满天飞!用
nav/main/aside/header/footer等语义化标签 - 模块化:页面结构拆分,一个模块只负责一个功能
- 用Bootstrap简化样式,适配移动端
4.2 完整首页代码(可直接复制)
创建index.html文件,代码如下:
html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 引入Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<title>用户管理系统</title>
</head>
<body>
<!-- 头部:导航栏 -->
<header class="bg-primary text-white py-3">
<div class="container">
<h1 class="h4 mb-0">用户管理系统</h1>
</div>
</header>
<!-- 导航区 -->
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container">
<a class="navbar-brand" href="#">用户管理</a>
<div class="collapse navbar-collapse">
<ul class="navbar-nav me-auto">
<li class="nav-item"><a class="nav-link active" href="#">首页</a></li>
<li class="nav-item"><a class="nav-link" href="#user-list">用户列表</a></li>
<li class="nav-item"><a class="nav-link" href="#add-user">新增用户</a></li>
</ul>
</div>
</div>
</nav>
<!-- 主内容区 -->
<main class="container my-4">
<div class="row">
<!-- 侧边栏 -->
<aside class="col-md-3 mb-4">
<div class="card">
<div class="card-header">操作指南</div>
<div class="card-body">
<ul class="list-unstyled">
<li>✅ 点击「用户列表」查看所有用户</li>
<li>✅ 点击「新增用户」添加新用户</li>
<li>✅ 支持修改/删除单个用户</li>
</ul>
</div>
</div>
</aside>
<!-- 核心内容 -->
<section class="col-md-9">
<div class="card" id="user-list">
<div class="card-header">用户列表</div>
<div class="card-body">
<table class="table table-striped">
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
<th>年龄</th>
<th>邮箱</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>张三</td>
<td>25</td>
<td>zhangsan@test.com</td>
<td>
<button class="btn btn-sm btn-primary">修改</button>
<button class="btn btn-sm btn-danger">删除</button>
</td>
</tr>
<tr>
<td>2</td>
<td>李四</td>
<td>28</td>
<td>lisi@test.com</td>
<td>
<button class="btn btn-sm btn-primary">修改</button>
<button class="btn btn-sm btn-danger">删除</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- 新增用户表单 -->
<div class="card mt-4" id="add-user">
<div class="card-header">新增用户</div>
<div class="card-body">
<form>
<div class="mb-3">
<label class="form-label">姓名</label>
<input type="text" class="form-control" placeholder="请输入姓名">
</div>
<div class="mb-3">
<label class="form-label">年龄</label>
<input type="number" class="form-control" placeholder="请输入年龄">
</div>
<div class="mb-3">
<label class="form-label">邮箱</label>
<input type="email" class="form-control" placeholder="请输入邮箱">
</div>
<button type="submit" class="btn btn-primary">提交</button>
</form>
</div>
</div>
</section>
</div>
</main>
<!-- 页脚 -->
<footer class="bg-dark text-white py-3 mt-5">
<div class="container text-center">
<p class="mb-0">用户管理系统 © 2025 模块化开发实战</p>
</div>
</footer>
<!-- 引入Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
✅ 踩坑提醒:
- 引入Bootstrap时,优先用CDN链接,本地引入容易路径出错
- 语义化标签要嵌套正确:
main里放核心内容,aside放侧边栏,不要混用 - Bootstrap的栅格系统(col-md-3/col-md-9)要放在
.row里,否则布局会乱
4.3 运行效果
直接用浏览器打开index.html,就能看到:
- 适配移动端的响应式布局
- 语义化的页面结构,爬虫更容易识别
- 清晰的用户列表和新增表单
五、核心总结:模块化+RESTful的核心价值

- 模块化开发:
- 一个函数/文件只做一件事,维护时不用全量改代码
- 后端数据、接口、前端页面拆分,逻辑更清晰
- RESTful接口:
- 统一的URL设计+HTTP方法,前后端沟通成本降低
- 符合阿里Java开发规范,大厂都在用的设计范式
- 语义化前端:
- 替代冗余div,代码可读性提升80%
- 对SEO友好,网页更容易被搜索引擎收录
最后的结语
现在人人都能写代码了,但是还有跟重要的就是该怎么维护代码,怎么与他人之间进行协作这些问题任然是我们不可或缺的素养,这些技巧性的知识也是我们你能更好使用ai一本逆天"功法",利用这些知识更能写出更精准的Prompt,减少我们开发时反复检验冗余的代码