开始一个小项目-伴学
开始
◆前端框架
创建前端文件夹,Vue框架初始化。
简单 不赘述 官网就有命令 然后一直Enter
◆后端框架
目标:创建后端文件夹,Express框架初始化。
1 | # 第一步 初始化 |
第二步说明:
express— Web框架(处理HTTP请求)mongoose— 连接和操作MongoDB的工具cors— 允许前端跨域请求后端dotenv— 管理敏感配置(数据库密码等)bcryptjs— 密码加密jsonwebtoken— 登录令牌(JWT)nodemon— 代码改动后自动重启服务器(开发用)
第三步,打开 backend\package.json,找到 "scripts" 那一段,替换成:
1 | "scripts": { |
第四步 创建后端文件
1 | backend/ |
一句话理解:请求 → 路由(找路)→ 中间件(检查身份)→ 控制器(处理业务)→ 模型(读写数据库)→ 返回结果。
此时,核心代码骨架已经有了,现在让他能跑起来!
第①步:配置 .env → 告诉程序”数据库在哪、用哪个端口”。
第②步:配置 db.js → 建立和MongoDB的连接。
第③步:编写 index.js → 启动Express服务器。
具体内容不赘述 ai都能生成。
下一步 启动你的数据库。
运行,此时应该后端能正常启动!
产品
第一步 明确要做一个什么产品。
明确思路:接下来分两条线并行推进:
后端(数据+接口) 前端(页面)
| │
① 创建数据模型 ① 搭顶部Tab切换框架
(User/Post/自习室) (发现/专注/我的)
| |
② 写注册登录接口 ② 对接后端接口
| |
③ 写帖子/自习室接口 ③ 完善各页面内容
└─────────┬────────────────┘
前后端联调!
后端
第一步 写模型。
backend/src/models/
├── User.js ← 用户(7个字段)
├── Todo.js ← 待办(3个字段)
├── Post.js ← 帖子 + 评论内嵌
├── StudyRecord.js ← 学习记录
└── StudyRoom.js ← 自习室 + 成员内嵌(最复杂)
第二步 写接口。
🎯 按依赖顺序:先中间件 → 再控制器 → 再路由 → 最后挂载
比如写关于登录注册的代码:
📦 要创建的三个文件
1 | backend/src/ |
下一步,测试,我是用的Apifox。
可以把接口地址保存下来。
需要了解一下状态码 apifox可能会误判“失败” 不过可以自己看状态码判断。
也可以结合数据库 注意要刷新。
✅ 注册登录功能完美通过!
然后一依次完成其他模块。
前端
第一步 安装依赖
1 | npm install vue-router@4 pinia axios |
vue-router页面跳转(发现→专注→我的)pinia状态管理(保存登录用户信息)axios发HTTP请求(调后端接口)
第二步 先建目录,再填文件。
🎯按依赖顺序:网络层 → 状态层 → 路由 → 页面 → 主框架。
① 网络层(怎么和后端说话) → utils/request.js
② 状态层(全局共享数据) → stores/user.js
③ 路由层(URL和页面对应) → router/index.js
④ 页面层(每个页面的内容) → views/*.vue
⑤ 主框架(顶部Tab壳子) → App.vue
⑥ 入口(把所有串联起来) → main.js
为什么是这个顺序?
main.js 需要知道:有哪些路由(router)、全局数据在哪(pinia)
↑
App.vue 需要知道:内容区显示哪个页面(router-view)
↑
views/*.vue 需要知道:怎么调接口(request)、用户登录没(stores/user)
↑
stores/user.js 需要知道:怎么发请求(request)
↑
utils/request.js ← 最底层,不被任何人依赖,所以最先建
图标: https://iconify.design/docs/icon-components/vue/
上传github
✅清理敏感信息
- 把
.env里的真实密钥替换成占位符 - 创建
.env.example模板文件 - 确保
.gitignore包含:node_modules/、.env、dist/、uploads/、*.log
✅在 GitHub 官网创建仓库
- 打开 github.com/new
- 填仓库名,选 Public
- ❌ 不勾 README / .gitignore / license(项目里已有)
✅本地初始化并提交
1 | cd 项目根目录 |
✅关联远程仓库并推送
1 | git remote add origin https://github.com/你的用户名/仓库名.git |
完成。刷新 GitHub 页面即可看到代码。
部署
一、整体架构
1 | 用户浏览器 |
二、部署前准备
◆MongoDB Atlas 云数据库
- 注册/登录 MongoDB Atlas
- 创建免费集群(Free Tier,选 AWS 新加坡)
- Network Access → Add IP Address → 选 “Allow Access from Anywhere”。
- Database Access → 创建用户,记下用户名和密码。
- Connect → Drivers → 复制连接字符串。
⚠️ 常见问题:忘记加 IP 白名单 → 后端报 `Could not connect to any servers
◆GitHub OAuth 应用
- GitHub → Settings → Developer settings → OAuth Apps → New OAuth App
- 填写
- Homepage URL
- Callback URL - 创建后获取
Client ID和Client Secret
三、后端部署(Render)
- 关联 GitHub 仓库
Render 会自动检测到backend目录下的package.json - 配置 Environment Variables
- Build & Start 命令
- 检查部署
⚠️ 常见问题:
- 502 Bad Gateway → 通常是 MongoDB 连接失败,检查 IP 白名单和 MONGO_URI
- Error: Cannot find module → 检查
dotenv路径,Render 上.env文件不走本地,要靠 Environment Variables
四、前端部署(Vercel)
5. 关联 GitHub 仓库
Vercel 会自动检测到 frontend 目录,框架选 Vite
6. 无需手动配置
- 无需 Environment Variables(API 地址在代码里根据域名自动判断)
- 无需手动 Build/Start 命令(Vite 项目自动识别)
7. SPA 路由必须配置 vercel.json
1 | { |
- 自动部署:每次git push到main分支,Vercel自动重新构建和部署。
五、备忘清单(部署时对照)
- MongoDB Atlas IP 白名单 →
0.0.0.0/0 - Render 环境变量全部填完
- GitHub OAuth Callback URL 指向后端
- 前端
vercel.json配置 SPA 路由 -
.env文件已在.gitignore中 -
.vscode已在.gitignore中 -
.vercel-tmp已在.gitignore中 -
git push后等 Vercel 自动部署(约 1-2 分钟) - 部署完访问首页,测试注册/登录/GitHub 登录



