Skip to content

Node.js 的网络、HTTP 服务与服务端基础能力

Node.js 之所以会被很多前端团队继续使用,不只是因为它能跑构建工具,还因为它天然具备:

写网络服务和 HTTP 服务的能力。

1. 这一块在解决什么问题

在前端语境里,Node.js 的网络能力常见于:

  1. 本地开发服务器
  2. SSR 服务
  3. BFF
  4. 代理层
  5. 网关前置层

也就是说,Node.js 不只是“脚本环境”,它也能直接成为服务端能力的一部分。

2. http 模块能做什么

Node.js 提供了原生 http 模块,可以直接创建服务器。

例如:

js
import http from 'node:http'

const server = http.createServer((req, res) => {
  res.statusCode = 200
  res.setHeader('Content-Type', 'text/plain; charset=utf-8')
  res.end('hello node')
})

server.listen(3000)

这个例子虽然简单,但已经具备:

  1. 接收请求
  2. 处理响应
  3. 监听端口

3. 为什么前端会在 Node.js 里写 HTTP 服务

常见原因包括:

  1. 统一前后端技术栈
  2. 更适合做接口聚合和中间层
  3. 便于承接 SSR 和开发服务
  4. 更容易和前端构建、模板渲染、静态资源处理整合

4. 原生 http 和框架的关系

工程里不一定都直接基于原生 http 写业务。

更常见的做法是:

  1. 原生能力负责底层网络入口
  2. 上层再用框架或中间件体系组织业务逻辑

所以更具体一点:理解原生 http 的意义,是理解服务是怎么被接住和返回的。

5. 一份检查清单

理解 Node.js 网络能力时,至少可以自查:

  1. 当前服务是在监听端口,还是只是发请求
  2. 请求和响应对象里有哪些关键信息
  3. 当前更适合原生能力,还是框架封装
  4. 这个服务更偏开发工具,还是线上业务入口

6. 小结

如果压缩成一句话,可以记住:

Node.js 的网络和 HTTP 能力,让 JavaScript 不只是能写页面和脚本,也能直接承接服务端入口和中间层逻辑。

基于 VitePress 构建的个人技术笔记。