langShift

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/EchoExpress/Koa 中间件
JSON 处理encoding/json,结构体标签JSON.parse/stringify,body-parser
静态文件FileServerexpress.static
错误处理显式,error 值try/catch,错误中间件

最佳实践

  • 使用 context 传递请求作用域数据和取消信号
  • 输入校验与过滤
  • 显式处理错误并返回合适状态码
  • 使用中间件实现日志、认证、CORS 等
  • 复杂项目优先选用 Gin、Echo 等框架
  • 为处理器和中间件编写测试

练习题

  1. Go 的 net/http 与 Node.js 的 HTTP 模块有何不同?
  2. 分别展示 Go 和 Node.js 如何处理 JSON 请求与响应。
  3. 为什么实际项目中推荐使用 Gin 或 Echo,而不是只用标准库?

项目实战

用 Go 实现一个简单的 RESTful API,支持资源(如任务或用户)的 CRUD 操作,包含路由、JSON 处理和日志中间件。并与 Node.js/Express 版本进行对比。