Web 开发
Go 在高性能 Web 服务器和 API 构建领域应用广泛。其标准库提供了强大的 HTTP、路由和 JSON 处理能力,Gin、Echo 等主流框架则带来更高级的抽象。本模块将从 JavaScript/Node.js 开发者视角,系统介绍 Go Web 开发,配合实用代码对比和最佳实践。
Go Web 开发概览
- 标准库:
net/http
用于 HTTP 服务器、路由、中间件 - 主流框架: Gin、Echo、Fiber、Chi
- 核心特性: 简洁、高性能、静态类型、并发
- 常见场景: RESTful API、微服务、静态文件服务、实时服务
Hello World:最小 HTTP 服务器
正在加载...
路由与参数
Go 标准库提供基础路由,复杂路由推荐使用 Gin、Echo 等框架。
正在加载...
处理 JSON 请求与响应
正在加载...
静态文件服务
正在加载...
中间件
Go 中间件通常通过处理器包装实现,Gin/Echo 等框架提供便捷的中间件机制。
正在加载...
Go 与 JavaScript/Node.js 对比
特性 | Go(net/http, Gin) | JavaScript(Node.js, Express) |
---|---|---|
类型系统 | 静态强类型 | 动态弱类型 |
并发模型 | goroutine、channel | 事件循环、async/await |
性能 | 高,编译型 | 良好,解释型 |
路由 | 标准库基础,Gin 丰富 | Express、Koa、Fastify |
中间件 | 处理器包装,Gin/Echo | Express/Koa 中间件 |
JSON 处理 | encoding/json,结构体标签 | JSON.parse/stringify,body-parser |
静态文件 | FileServer | express.static |
错误处理 | 显式,error 值 | try/catch,错误中间件 |
最佳实践
- 使用 context 传递请求作用域数据和取消信号
- 输入校验与过滤
- 显式处理错误并返回合适状态码
- 使用中间件实现日志、认证、CORS 等
- 复杂项目优先选用 Gin、Echo 等框架
- 为处理器和中间件编写测试
练习题
- Go 的
net/http
与 Node.js 的 HTTP 模块有何不同? - 分别展示 Go 和 Node.js 如何处理 JSON 请求与响应。
- 为什么实际项目中推荐使用 Gin 或 Echo,而不是只用标准库?
项目实战
用 Go 实现一个简单的 RESTful API,支持资源(如任务或用户)的 CRUD 操作,包含路由、JSON 处理和日志中间件。并与 Node.js/Express 版本进行对比。