PAYATHON 2026

学过前端后,应该如何规划后端开发的入门学习路径?

技术老齐

如果你已经学过 JavaScript,又没有明确的岗位或项目要求,建议先用 Node.js 入门后端,做一个带数据库和登录功能的小项目,再考虑要不要学 PHP 和 Laravel。沿用熟悉的语言,可以把更多精力放在 HTTP、数据存储和权限控制上。

如果目标团队使用 Laravel,或者有人能带你做 Laravel 项目,直接学 PHP 和 Laravel 也合适。能找到什么学习资源、能参与什么项目,往往比比较技术名称更有助于选择。

Node.js 和 Laravel 应该怎么选?

技术是什么入门时需要学习什么
Node.js在浏览器之外运行 JavaScript 的运行时Node.js 的模块、异步操作、HTTP 服务,以及选用的后端框架
Laravel基于 PHP 的 Web 应用框架PHP 基础、Composer,以及 Laravel 的路由、数据库访问等功能

两者的定位不同,更适合放在一起比较的是“Node.js + Express”和“PHP + Laravel”。

选择 Node.js 的主要好处是可以继续使用 JavaScript。不过,浏览器里的经验只能迁移一部分:后端没有用来操作页面的 DOM,你需要处理请求、访问数据库,还要决定哪些用户可以读取或修改哪些数据。

Laravel 提供了一套较完整的 Web 开发组织方式,包括路由、中间件、数据验证和数据库迁移等。走这条路线,可以先学 PHP 的语法、类、命名空间和异常处理,再熟悉 Laravel 的框架约定。

入门时选一条路线就够了,不必同时学两套技术栈。

第一步:补齐 JavaScript 和 HTTP 基础

选择 Node.js 的话,先确认自己会用这些基础知识:

  • 函数、对象、数组,以及常用的数组操作。
  • 模块导入与导出。
  • Promise、async / await 和 try...catch。
  • JSON 的序列化与解析。

高级语法可以在写接口的过程中逐步补上,不必全学完才开始做后端。

接着,弄清一次请求的处理过程:

浏览器发送请求
    → 后端根据请求方法和路径处理业务
    → 必要时读写数据库
    → 后端返回状态码和响应内容
    → 前端更新页面

需要掌握的内容包括请求方法、URL、请求头、请求体和响应状态码。例如,GET /api/tasks 可以用于查询任务,POST /api/tasks 可以用于创建任务。

可以打开浏览器开发者工具的 Network 面板,观察参数放在哪里、接口返回了什么数据。结合实际请求来学,比只背概念更容易理解。

第二步:先写一个能运行的接口

安装处于支持期的 Node.js LTS 版本后,先用内置的 node:http 模块练习处理请求和返回响应,这一步不需要安装框架。

创建 server.cjs:

const { createServer } = require("node:http");

const tasks = [
  { id: 1, title: "学习 HTTP", completed: false },
];

const server = createServer((req, res) => {
  const url = new URL(req.url, "http://localhost");

  res.setHeader("Content-Type", "application/json; charset=utf-8");

  if (url.pathname !== "/api/tasks") {
    res.writeHead(404);
    res.end(JSON.stringify({ error: "接口不存在" }));
    return;
  }

  if (req.method !== "GET") {
    res.setHeader("Allow", "GET");
    res.writeHead(405);
    res.end(JSON.stringify({ error: "不支持该请求方法" }));
    return;
  }

  res.writeHead(200);
  res.end(JSON.stringify(tasks));
});

server.listen(3000, "127.0.0.1", () => {
  console.log("Server running at http://127.0.0.1:3000");
});

启动服务:

node server.cjs

在另一个终端请求接口:

curl -i http://127.0.0.1:3000/api/tasks

通过这个例子,可以练习路由判断、设置状态码和返回 JSON。任务数据保存在内存中,没有持久化,也没有登录或修改功能,适合作为入门练习。

接下来,用 Express 等框架实现同样的接口,学习框架如何组织路由、中间件和错误处理。入门时先理解原生请求的处理过程即可,不必把整套框架功能都手写一遍。

第三步:用一个项目学习数据库和业务逻辑

继续做一个任务管理应用,前端沿用你熟悉的 HTML、CSS 和 JavaScript。先实现这些接口:

接口功能
GET /api/tasks查询任务
POST /api/tasks创建任务
PATCH /api/tasks/:id修改任务
DELETE /api/tasks/:id删除任务

先用内存中的数据跑通接口,再接入一种关系型数据库,例如 PostgreSQL 或 MySQL。这个阶段需要学习:

  • 表、字段、主键、外键和约束。
  • SELECT、INSERT、UPDATE、DELETE。
  • 基本关联查询,以及事务能解决什么问题。
  • 参数化查询,避免把用户输入直接拼进 SQL。
  • 数据库迁移,用文件记录表结构的变化。

使用 ORM 前,至少要会写简单的 SQL,并理解 ORM 最终执行的数据库操作。

可以这样检查这一阶段的成果:从前端创建任务,重启后端后,任务仍然存在。提交空标题时,服务端应拒绝请求;修改不存在的任务时,接口应返回合适的错误。

第四步:加入登录、权限和部署

完成基础增删改查后,再增加用户功能。创建用户时保存密码哈希,登录后建立会话,并将每条任务关联到所属用户。

认证和授权分别回答两个问题:

  • 认证:当前请求来自哪个用户?
  • 授权:这个用户是否有权操作这条任务?

任务管理应用可以先采用基于 Cookie 的 Session 方案,JWT 刷新机制可以暂时放一放。学习会话时,也要弄清 Cookie 属性、跨站请求伪造防护,以及前后端跨源时的配置。

权限检查必须在服务端完成。即使前端隐藏了“删除”按钮,用户仍然可以直接发送删除请求。

最后,把应用部署到能够运行后端的环境中,练习配置环境变量、连接数据库、查看日志和使用 HTTPS。数据库密码等敏感配置不要写进前端代码,也不要提交到代码仓库。

怎样安排学习进度?

可以按下面这些目标推进,比规定自己“几天学完后端”更实际:

  1. 写出接口,并能解释请求和响应的内容。
  2. 让前端调用接口,完成增删改查。
  3. 把数据保存进数据库,并处理无效输入。
  4. 实现登录,让用户只能访问自己的数据。
  5. 部署应用,并根据日志定位错误。

为关键行为补上测试,例如“未登录不能创建任务”“用户 A 不能删除用户 B 的任务”“无效输入不会写入数据库”。

当前端和后端地址的协议、主机或端口不同时,还可能遇到 CORS。允许范围应根据实际前端来源配置。CORS 本身不提供用户认证,也不能代替权限检查。

完成这个项目后,再按需求学习 TypeScript、缓存或后台任务。微服务、消息队列和 Kubernetes 可以等项目确实需要时再学。如果最终选择 Laravel,也可以按相同顺序推进,把语言与框架部分换成 PHP、Composer 和 Laravel 即可。

备注:内容仅供参考。