Node.js 提供了很多方便的模块,其中 node-http 是一个非常常用的模块,它提供了很多处理 HTTP 请求和响应的功能。在前端开发中,我们经常需要与后端进行交互,因此学习如何使用 node-http 是很重要的。
安装
我们可以使用 npm 来安装 node-http,打开终端并输入以下命令:
npm install node-http --save
这会在当前项目中安装 node-http,并将其保存为依赖项。
创建一个 HTTP 服务器
我们可以使用 node-http 创建一个简单的 HTTP 服务器,打开你项目中的 index.js 文件,然后输入以下代码:
var http = require('node-http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.end('Hello World!'); }).listen(3000);
以上代码会创建一个监听端口为 3000 的 HTTP 服务器。当你访问 http://localhost:3000 时,你会看到 Hello World! 字符串。
处理 HTTP 请求
node-http 提供了很多处理 HTTP 请求的方法。例如,我们可以通过 request.url 属性获取请求的 URL,通过 request.method 属性获取请求的方法。
下面是一个使用 node-http 处理 HTTP GET 请求的例子:
-- -------------------- ---- ------- --- ---- - --------------------- -------------------------- ----- ---- - -- ----------- --- ----- -- ------- --- --------- - ------------------ ---------------- -------------- -------------- --------- - ---- - ------------------ ---------------- -------------- ------------ -------- - ----------------
当你访问 http://localhost:3000/hello 时,你会看到 Hello World! 字符串。访问其他 URL 时,你会看到 Not Found 字符串。
处理 HTTP POST 请求
使用 node-http 处理 HTTP POST 请求也很简单。我们可以使用 request.on('data', callback) 方法来获取 POST 请求的数据。下面是一个例子:
-- -------------------- ---- ------- --- ---- - --------------------- -------------------------- ----- ---- - -- ----------- --- ------ -- ------- --- ------------ - --- ---- - --- -------------- -------- ------- - ---- -- ------ --- ------------- -------- -- - --- --- - ----------------- --- -------- - ------------- --- -------- - ------------- -- ------- -- --- ------------------ ---------------- -------------- -------------- --- - ---- - ------------------ ---------------- -------------- ------------ -------- - ----------------
当你发送一个 POST 请求到 http://localhost:3000/register,并且请求体中包含一个 JSON 格式的字符串:{"username": "admin", "password": "123456"},那么代码会将这些数据插入到数据库中,并返回 OK 字符串。
组装 HTTP 响应
我们可以使用 response.writeHead(statusCode, headers) 方法来组装 HTTP 响应的头部信息,使用 response.end(data) 方法来发送响应的主体信息。例如:
-- -------------------- ---- ------- --- ---- - --------------------- -------------------------- ----- ---- - ------------------ ---------------- -------------- -------------------- -------------------- ----------------------- ---------------- --------------------- -------------------- -------------------- -------------- --------------------- --------------------- ---------- ----------------
监听 HTTP 请求的事件
我们可以使用 request 和 response 对象上的很多事件来监听 HTTP 请求和响应的生命周期。例如,如果希望监听所有请求和响应的时间,可以添加以下代码:
var http = require('node-http'); http.createServer(function (req, res) { console.log(req.method, req.url); console.log(res.statusCode); console.log(res._header); }).listen(3000);
以上代码会在每次请求和响应的时候打印请求和响应的相关信息。
结语
在本文中,我们介绍了如何使用 node-http 模块来创建一个简单的 HTTP 服务器,处理 HTTP 请求和响应,以及组装响应信息。同时,本文也介绍了一些常用的监听 HTTP 请求和响应的事件。相信读完本文,你已经可以使用 node-http 简单地搭建一个 HTTP 服务器,处理 HTTP 请求和响应了。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/72375