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

发布时间:2026/8/20 11:29:13

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 服务器的基本原理。

相关新闻

帕加尼电动超跑技术解析:如何平衡性能、轻量化与热管理

帕加尼电动超跑技术解析:如何平衡性能、轻量化与热管理

2026/8/20 11:29:13

1. 从内燃机图腾到电力新纪元:帕加尼为何要造电动超跑? 当“帕加尼”和“电动超跑”这两个词被放在一起时,引发的讨论远不止于技术层面,更像是一场关于汽车灵魂的辩论。对于像我这样长期关注顶级超跑领域的人来说,帕加…

领克半年4万销量解析:产品矩阵、EM-P混动技术与渠道下沉策略

领克半年4万销量解析:产品矩阵、EM-P混动技术与渠道下沉策略

2026/8/20 11:29:13

1. 领克半年4万销量背后的市场逻辑与渠道密码 最近看到领克汽车公布上半年销量超过4万,同时经销商网络计划年内拓展到180家的消息,说实话,这个数据在当下的市场环境里,挺值得琢磨的。它不是那种动辄几十万的“爆款”数字&#xff…

STM32硬件I2C复位死锁问题分析与软件恢复方案

STM32硬件I2C复位死锁问题分析与软件恢复方案

2026/8/20 11:29:13

1. 问题现场:一个典型的硬件I2C死锁场景 最近在调试一个基于STM32的项目,用到了硬件I2C接口去读写一块AT24Cxx系列的E2PROM。功能本身并不复杂,初始化、发送设备地址、读写数据,一气呵成,测试时一切正常。然而&#xf…

插件化审计系统生产级部署实战:从架构设计到高可用运维的完整工程指南

插件化审计系统生产级部署实战:从架构设计到高可用运维的完整工程指南

2026/8/20 12:29:16

摘要:本文以生产环境落地的插件化代码安全审计系统为对象,从需求分析、总体架构、技术选型、插件生命周期与安全治理、审计流水线编排、高可用与可观测性、性能调优、容量规划、故障演练到成本优化,系统梳理一套可复制、可演进的工程化方案。本文不仅给出可直接运行的 Docke…

暗黑破坏神2高清补丁完全指南:D2DX 让 25 帧的老游戏在现代屏幕上重获新生

暗黑破坏神2高清补丁完全指南:D2DX 让 25 帧的老游戏在现代屏幕上重获新生

2026/8/20 12:29:16

暗黑破坏神2高清补丁完全指南:D2DX 让 25 帧的老游戏在现代屏幕上重获新生 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/…

Navicat mac版试用期重置完整指南:3种玩法让14天试用期不再断档

Navicat mac版试用期重置完整指南:3种玩法让14天试用期不再断档

2026/8/20 12:29:16

Navicat mac版试用期重置完整指南:3种玩法让14天试用期不再断档 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 如…

基于实时语音识别与拼音模糊匹配的智能关键词触发系统实战

基于实时语音识别与拼音模糊匹配的智能关键词触发系统实战

2026/8/20 12:29:15

最近在技术社区看到一个很有意思的挑战:如何用程序实现一个“全国车牌之歌”的智能切歌系统?具体要求是,当歌曲唱到屏幕右侧9个《集合啦!动物森友会》小动物口头禅的任意一个字(包含谐音和变声调)时&#x…

LeetCode Hot 100 题解 · 技巧篇

LeetCode Hot 100 题解 · 技巧篇

2026/8/20 12:29:15

LeetCode Hot 100 题解 技巧篇 本专题收录 LeetCode Hot 100 中所有 技巧篇 相关题目。每道题提供最直接、最容易理解的解题思路,包含详细注释的代码实现,方便笔试和面试复习。 📑 目录 题号题目难度核心思路136136.只出现一次的数字&#…

机场边检下机旅客实时无感定位技术白皮书|人脸特征・衣着特征・身体姿态・微动作・视频结构化数据五维融合与镜像视界核心技术技术

机场边检下机旅客实时无感定位技术白皮书|人脸特征・衣着特征・身体姿态・微动作・视频结构化数据五维融合与镜像视界核心技术技术

2026/8/20 12:19:15

机场边检下机旅客实时无感定位技术白皮书|人脸特征・衣着特征・身体姿态・微动作・视频结构化数据五维融合与镜像视界核心技术编制单位:镜像视界(浙江)科技有限公司技术奠基人:耿文海(国内空间智能与跨镜追…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/19 3:36:59

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/19 9:17:18

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/19 8:02:16

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

微信聊天记录如何完整导出?WeChatMsg备份指南:HTML/Word/CSV一键转换

微信聊天记录如何完整导出?WeChatMsg备份指南:HTML/Word/CSV一键转换

2026/8/20 0:08:45

微信聊天记录如何完整导出?WeChatMsg备份指南:HTML/Word/CSV一键转换 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com…

B站缓存m4s打不开?m4s-converter无损合成MP4,实测1.46GB仅5秒

B站缓存m4s打不开?m4s-converter无损合成MP4,实测1.46GB仅5秒

2026/8/20 0:08:45

B站缓存m4s打不开?m4s-converter无损合成MP4,实测1.46GB仅5秒 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 判断你是否…

告别白模时代:Blender3mfFormat 让 3MF 导入导出一次跑通设计到打印

告别白模时代:Blender3mfFormat 让 3MF 导入导出一次跑通设计到打印

2026/8/20 0:08:45

告别白模时代:Blender3mfFormat 让 3MF 导入导出一次跑通设计到打印 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 按 3MF 官方规范的字面意思,一…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/17 12:00:53

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/18 12:20:24

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…