十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Node.js入门教程(三十):Web 模块

Node.js入门教程(三十):Web 模块 一、什么是 Web 服务器Web服务器一般指网站服务器是指驻留于因特网上某种类型计算机的程序Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL与客户端的网络浏览器配合。大多数 web 服务器都支持服务端的脚本语言php、python、ruby等并通过脚本语言从数据库获取数据将结果返回给客户端浏览器。目前最主流的三个Web服务器是Apache、Nginx、IIS。二、Web 应用架构┌─────────────┐ HTTP请求 ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Client │ ──────────────▶ │ Server │ ──▶ │ Business │ ──▶ │ Data │ │ (浏览器) │ ◀────────────── │ (Web服务器) │ ◀── │ (业务层) │ ◀── │ (数据层) │ └─────────────┘ HTTP响应 └─────────────┘ └─────────────┘ └─────────────┘层级名称说明Client客户端一般指浏览器通过 HTTP 协议向服务器请求数据Server服务端一般指 Web 服务器接收客户端请求并发送响应数据Business业务层通过 Web 服务器处理应用程序如与数据库交互、逻辑运算、调用外部程序等Data数据层一般由数据库组成三、使用 Node 创建 Web 服务器Node.js 提供了http模块主要用于搭建 HTTP 服务端和客户端使用 HTTP 服务器或客户端功能必须调用http模块var http require(http);创建基本 HTTP 服务器创建server.js文件代码如下所示var http require(http); var fs require(fs); var url require(url); // 创建服务器 http.createServer(function(request, response) { // 解析请求包括文件名 var pathname url.parse(request.url).pathname; // 输出请求的文件名 console.log(Request for pathname received.); // 从文件系统中读取请求的文件内容 fs.readFile(pathname.substr(1), function(err, data) { if (err) { console.log(err); // HTTP 状态码: 404 : NOT FOUND // Content Type: text/html response.writeHead(404, { Content-Type: text/html }); } else { // HTTP 状态码: 200 : OK // Content Type: text/html response.writeHead(200, { Content-Type: text/html }); // 响应文件内容 response.write(data.toString()); } // 发送响应数据 response.end(); }); }).listen(8080); // 控制台会输出以下信息 console.log(Server running at http://127.0.0.1:8080/);创建 HTML 文件在该目录下创建一个index.html文件代码如下!DOCTYPE html html head meta charsetutf-8 title教程(runoob.com)/title /head body h1我的第一个标题/h1 p我的第一个段落。/p /body /html运行服务器执行server.js文件$ node server.js Server running at http://127.0.0.1:8080/访问测试在浏览器中打开地址http://127.0.0.1:8080/index.html页面显示我的第一个标题 我的第一个段落。控制台输出Server running at http://127.0.0.1:8080/ Request for /index.html received. # 客户端请求信息四、使用 Node 创建 Web 客户端Node 创建 Web 客户端同样需要引入http模块。创建client.js文件代码如下所示var http require(http); // 用于请求的选项 var options { host: localhost, port: 8080, path: /index.html }; // 处理响应的回调函数 var callback function(response) { // 不断更新数据 var body ; response.on(data, function(data) { body data; }); response.on(end, function() { // 数据接收完成 console.log(body); }); }; // 向服务端发送请求 var req http.request(options, callback); req.end();运行客户端新开一个终端执行client.js文件$ node client.js !DOCTYPE html html head meta charsetutf-8 title教程(runoob.com)/title /head body h1我的第一个标题/h1 p我的第一个段落。/p /body /html服务器控制台输出Server running at http://127.0.0.1:8080/ Request for /index.html received. # 客户端请求信息五、Web 服务器工作流程┌─────────────────────────────────────────────────────────────────┐ │ Web 服务器工作流程 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ 1. 客户端浏览器发送 HTTP 请求 │ │ │ │ │ ▼ │ │ 2. 服务器接收请求解析 URL 和请求方法 │ │ │ │ │ ▼ │ │ 3. 根据路径读取对应的文件或执行逻辑 │ │ │ │ │ ▼ │ │ 4. 设置响应状态码和响应头 │ │ │ │ │ ▼ │ │ 5. 发送响应数据给客户端 │ │ │ │ │ ▼ │ │ 6. 客户端接收响应渲染页面 │ │ │ └─────────────────────────────────────────────────────────────────┘六、本章小结知识点说明Web 服务器提供 Web 信息浏览服务的程序Web 应用架构Client → Server → Business → Datahttp 模块Node.js 内置 HTTP 模块用于创建服务器和客户端创建服务器http.createServer()创建 HTTP 服务器静态文件服务使用fs模块读取文件并返回给客户端创建客户端http.request()发送 HTTP 请求请求解析url.parse()解析请求 URL提示这是一个基础的静态文件服务器示例。在实际生产环境中通常使用 Express、Koa 等框架来处理路由、中间件、静态文件等更复杂的场景同时还需要考虑安全、性能优化、错误处理等问题。本示例帮助你理解 Node.js 作为 Web 服务器的基本原理。
返回列表