Vibe Coding 系列后端入门那篇讲的是"数据从哪来",这篇讲"数据往哪存"和"代码怎么上线"。包含数据库、登录鉴权、部署上线等流程,一起来看看吧!
数据与账号
数据库(Database)
数据库就是长期存数据的地方。你的用户注册信息、订单记录、文章内容——这些数据不能存在内存里(一关服务器就丢),要存在数据库里。
VibeHub 里的原话:"数据库是用于长期保存、查询、修改和删除应用数据的系统。users 表:id / 名字 / 城市。增 / 查 / 改 / 删。"
常见的数据库:
- SQL 类(关系型):PostgreSQL、MySQL、SQLite。数据规整,字段固定。
- NoSQL 类(非关系型):MongoDB、Redis。数据灵活,字段可以不一样。
选哪个:如果你不确定,"用 PostgreSQL"一般是不会错的选择——功能全、免费、AI 最熟悉。
喂给 AI 的话:"用 PostgreSQL 创建数据库。建一个 users 表:id(自增主键)、name(varchar 100)、email(varchar 唯一)、password_hash(varchar 255)、created_at(timestamp)。"
SQL 查询
SQL 是跟数据库说话的语言。增删改查都靠它。
VibeHub 里的原话:"SQL 是用于查询和修改关系型数据库数据的语言。SELECT name, city FROM users WHERE city = '深圳';。"
最常见的 4 个操作:
- 查:
SELECT * FROM users WHERE email = 'xxx'
- 增:
INSERT INTO users (name, email) VALUES ('小明', 'xiao@email.com')
- 改:
UPDATE users SET name = '新名字' WHERE id = 1
- 删:
DELETE FROM users WHERE id = 1
你不需要会写 SQL。告诉 AI "查一下邮箱是 xxx 的用户"或者"把 id=1 的用户名改成新名字",AI 会帮你生成对应的 SQL 语句。
数据校验(Validation)
数据存进数据库之前要先检查:邮箱格式对不对?年龄是不是数字?密码够不够长?如果直接把用户填的内容存进数据库,可能会有安全风险。
VibeHub 里的原话:"数据校验是在使用输入前检查其格式、范围和业务规则的步骤。email ✓ / age ✕ 必须是 1-120 / role ✓。"
喂给 AI 的话:"注册接口做数据校验:email 必填且格式正确、password 至少 8 位含字母和数字、age 可选但必须是数字 1-120。校验不通过返回 400 和具体错误信息。"
登录鉴权(Authentication)
确认"你是谁"。用户输入用户名密码,系统验证身份,然后发一个凭证(Token 或 Session)。
VibeHub 里的原话:"登录鉴权是确认用户身份并维持登录状态的机制。账号证明 → 验证身份 → 登录态。"
喂给 AI 的话:"用 JWT 做登录鉴权。用户 POST /api/login 传入 email+password,验证成功后返回 token。Token 有效期 7 天。前端收到 token 后存到 localStorage,后续请求在 Header 里带 Authorization: Bearer token。"
权限控制(Authorization)
确认"你能做什么"。同样是登录用户,"普通成员"只能看自己的数据,"管理员"可以管理全部。
VibeHub 里的原话:"权限控制是在确认身份后判断用户能访问或操作哪些资源的机制。访客(只读) / 成员(查看+编辑) / 管理员(管理全部)。"
喂给 AI 的话:"中间件做权限控制。三种角色:admin(全部权限)、editor(创建+编辑、不能删除)、viewer(只读)。API 路由上标注需要的权限,无权限返回 403。"
上线与排错
环境变量(Env Var)
你的代码里有敏感信息——数据库密码、API Key、密钥——不能直接写在代码里(会被传到 GitHub 上曝光)。要写到 .env 文件里,代码里从环境变量读取。
VibeHub 里的原话:"环境变量是在代码之外保存配置值、供不同运行环境读取的方式。.env 文件:OPENAI_API_KEY=sk-proj-...、DATABASE_URL=postgres://...。process.env.OPENAI_API_KEY 读取。🛡 .gitignore 规则已匹配,提交前再看 git status。"
喂给 AI 的话:"数据库连接信息写在 .env 文件里:DATABASE_URL=postgres://user:password@localhost:5432/mydb。代码里用 process.env.DATABASE_URL 读取。.env 加到 .gitignore,不要提交到 GitHub。"
部署上线(Deployment)
代码在你自己电脑上跑叫"本地开发",部署上线的意思就是把代码放到互联网上的服务器里,让所有人都能访问。
VibeHub 里的原话:"部署上线是把项目构建并发布成可通过公网访问版本的过程。本地文件 → build 打包 → 托管平台 → my-app.vercel.app。"
常见部署方式:
- Vercel/Netlify:前端项目最简单,连 GitHub 仓库后自动部署。免费。
- Railway/Fly.io:后端项目。免费额度够用。
- 自己的服务器:买一台云服务器(比如阿里云/腾讯云),手动部署。
新手最友好的方式:前端部署到 Vercel,后端部署到 Railway。两个都不用自己管服务器。
喂给 AI 的话:"项目部署到 Vercel。package.json 加 build 脚本,根目录加 vercel.json 配置文件。连接 GitHub 仓库自动部署。"
Serverless 函数
不用专门养一台服务器,每次有请求的时候才运行一段代码。跑完就关,不浪费资源。
VibeHub 里的原话:"Serverless 函数是由云平台按请求或事件运行、无需自行管理服务器的后端代码。请求 → 唤醒函数 → 响应。空闲时不用一直养着一台机器。"
喂给 AI 的话:"用 Vercel Serverless Functions 做后端 API。在 api/ 目录下创建函数文件,每个文件导出 handler 函数。Vercel 自动部署,不需要配置服务器。"
服务端日志(Server Logs)
服务器运行时会记录每一步发生了什么。当你的网站出问题了(比如接口报错),第一件事就是去看日志。
VibeHub 里的原话:"服务端日志是服务器记录请求、关键步骤、警告和错误的运行记录。12:08:31 POST /api/orders req_8fa2 INFO order created · 201 · 184ms。"
喂给 AI 的话:"每个 API 请求记录日志:时间戳、请求方法、路径、状态码、耗时。错误请求记录堆栈信息。开发环境打印到控制台,生产环境写到日志文件。"
实战:完整的后端项目 prompt
"用 Node.js + Express 搭一个带数据库的 API 项目:
- 数据库:PostgreSQL,连接信息从 .env 读取
- 建表:users(id/name/email/password_hash/role/created_at)、posts(id/user_id/title/content/created_at)
- POST /api/register — 注册(校验 email/密码,密码 bcrypt 加密存 hash)
- POST /api/login — 登录(验证密码,返回 JWT token)
- GET /api/posts — 查文章列表(不需要登录)
- POST /api/posts — 创建文章(需要登录,从 token 拿 userId)
- DELETE /api/posts/:id — 删除文章(需要登录 + 本人或 admin)
- 中间件:auth(验证 token)、admin(验证角色)、logger(记录请求日志)
- 部署到 Railway,环境变量配置好 DATABASE_URL 和 JWT_SECRET"