Node.js 写第一个 HTTP 服务时要先看懂什么
· 阅读需 2 分钟
Node.js 最吸引前端开发者的地方,往往是“终于能用 JavaScript 写后端”。但刚开始时,如果只顾着找框架、写接口,很容易忽略一个更基本的问题:请求到底是怎么进来,又是怎么返回出去的。
先把请求和响应当成一来一回
一个 HTTP 服务最基础的动作其实很简单:
- 浏览器发起请求
- 服务端接收请求
- 服务端处理逻辑
- 返回内容给浏览器
只要把这条链路先看明白,很多后面的问题都会容易理解。
用原生模块就能看到核心结构
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain; charset=utf-8'});
res.end('hello node');
}).listen(3000);
这段代码看起来很短,但已经把 Node.js 服务端最关键的两个对象摆在眼前了:req 代表请求,res 代表响应。
先别急着把所有逻辑塞进去
初学时很容易把“能跑起来”当成结束,于是路由判断、数据处理、字符串拼接全写进一个回调里。结果文件很快变长,也不容易再解释清楚每一步在干什么。
更好的理解方式是先问自己:这个请求来了以后,我要读什么信息?我要根据什么条件决定返回什么?只要这两个问题能答清楚,服务端思维就已经建立了一半。
返回内容之前要意识到状态码和头信息
即便是最简单的入门示例,也值得尽早注意 200、404、Content-Type 这些概念。它们不是附属细节,而是浏览器和服务端沟通时很重要的一部分。理解它们,后面看框架封装才不会只停留在表面。
小结
Node.js 的第一课不一定是框架,而是理解一次请求和一次响应到底在做什么。把这个基本模型吃透之后,再去看路由、模板或者数据库,学习路径会顺很多。
