用 10 行代码就能当 “服务器老板”+“网络小偷”+“文件管家”?Node.js:别不信!
<h1 data-id="heading-0">🧑💻 写在开头</h1><p>点赞 + 收藏 === 学会🤣🤣🤣</p>
<div>
<div>
<h2 data-id="heading-0"><strong>前言</strong></h2>
<p>当你叩开 <code>Node.js</code> 的大门,会发现它的内核逻辑恰似一套精密的 <strong>“后端工具链”</strong>:<code>http</code>模块是搭建服务的 <strong>“基建脚手架”</strong>,以极简代码就能拉起可被浏览器访问的 <strong>Web 端点</strong>;<code>https</code>模块是对接外部世界的 <strong>“数据导管”</strong>,能安全拉取远程接口的资源流;而<code>fs</code>模块则是连接本地存储的 <strong>“文件算子”</strong>,实现磁盘内容的读写调度。这三者如同<strong>后端开发的 “基础三角”</strong>,支撑起服务端程序最核心的能力骨架。</p>
<p>就像学会用<strong>锅铲、炒勺、漏勺</strong>搞定一桌菜,<code>Node.js</code> 的<code>http</code>、<code>https</code>、<code>fs</code>这 <strong>“三板斧”</strong>,能帮你轻松搞定<strong>服务搭建、网络请求、文件读写</strong>这三件大事。那我们就来看看这 <strong>“三板斧”</strong>,它们到底咋用?</p>
<h3 data-id="heading-1"><strong>第一斧</strong>:用<code>http</code>模块,10 行代码搭个 Web 服务器</h3>
<p>想象一下:你对着电脑喊 <strong>“我要开个网站”</strong>,Node.js 的<code>http</code>模块立刻给你搬来服务器的 “零件”,10 行代码就能让浏览器访问到你的页面。</p>
<p>比如这串代码:</p>
</div>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">const http = require('http') // 搬来HTTP“工具包”
// 造一个服务器:收到请求就“回应”
const server = http.createServer((req, res) => {
if (req.url === '/home') { // 如果访问“/home”路径
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' }) // 告诉浏览器:我给你的是HTML,编码是utf-8
res.end('<h2>首页</h2>') // 把“首页”这两个字扔给浏览器
}
})
// 让服务器“蹲在”3000端口等请求
server.listen(3000, () => {
console.log('server is running at http://localhost:3000')
})</pre>
</div>
<p><img src="https://img2024.cnblogs.com/blog/2149129/202601/2149129-20260129104730313-982282361.png" alt="ScreenShot_2026-01-29_104135_516" loading="lazy"></p>
<p> 效果:打开浏览器输入<code>http://localhost:3000/home</code>,就能看到 “首页” 两个大字 —— 是不是就10来行代码就出来了?</p>
<p><img src="https://img2024.cnblogs.com/blog/2149129/202601/2149129-20260129104739366-414916140.png" alt="ScreenShot_2026-01-29_104145_025" loading="lazy"></p>
<p> </p>
<h3 data-id="heading-2">第二斧:用<code>https</code>模块,“偷” 点网上的数据</h3>
<p>如果说<code>http</code>是 “开商店”,那<code>https</code>模块就是 “去别人家商店买东西”—— 比如从掘金 API 里扒点热门文章:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">const https = require('https'); // 搬来HTTPS“购物袋”
// 去掘金API“买”热门文章数据
https.get(
'https://api.juejin.cn/content_api/v1/content/article_rank?category_id=1&type=hot&count=3',
(res) => {
let content = '';
res.on('data', (chunk) => { // 数据“碎片”过来了,先攒着
content += chunk;
})
res.on('end', () => { // 数据攒够了,打印出来看看
console.log(content);
})
}
)</pre>
</div>
<p>效果:运行代码后,控制台会跳出掘金的文章数据 —— 相当于 <code>Node.js</code> 帮你 “爬” 了个网页,是不是很神奇?</p>
<p><img src="https://img2024.cnblogs.com/blog/2149129/202601/2149129-20260129104827136-26231637.png" alt="ScreenShot_2026-01-29_104156_105" loading="lazy"></p>
<div>
<div>
<p>可能很多人觉得控制台的东西很乱,但中文你总认得了吧?明显看到热搜第一的文章:<strong>2025快手直播至暗时刻</strong>。(也就是<code>title</code>那一行)。</p>
<h3 data-id="heading-3"><strong>第三斧</strong>:用<code>fs</code>模块,让 Node.js 当 “文件管家”</h3>
<p>电脑里的文件,<code>Node.js</code> 能用<code>fs</code>模块随便折腾:既能 <strong>“读”</strong> 文件里的内容,也能 <strong>“写”</strong> 新内容进去。</p>
<p>比如<strong>读文件</strong>:</p>
</div>
</div>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">const fs = require('fs'); // 搬来文件操作“管家”
// 读text.txt里的内容(就是那句“床前明月光”)
fs.readFile('./text.txt', 'utf-8', (err, data) => {
if (!err) {
console.log(data); // 打印出“床前明月光,疑是地上霜”
}
})</pre>
</div>
<p>然后我们创建一个文件夹<code>text.txt</code>:</p>
<p><img src="https://img2024.cnblogs.com/blog/2149129/202601/2149129-20260129104857641-1775260882.png" alt="ScreenShot_2026-01-29_104203_361" loading="lazy"></p>
<p> 用<code>node</code>运行,就可以看到文本里的内容了:</p>
<p><img src="https://img2024.cnblogs.com/blog/2149129/202601/2149129-20260129104908544-584285638.png" alt="ScreenShot_2026-01-29_104214_088" loading="lazy"></p>
<p> 再比如写文件:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">// 往readme.md里写“你好”
fs.writeFile('./readme.md', '你好', (err) => {
if (!err) {
console.log('写入成功'); // 成功后控制台提示
}
})
</pre>
</div>
<p> </p>
<p><img src="https://img2024.cnblogs.com/blog/2149129/202601/2149129-20260129104923661-1712910891.png" alt="ScreenShot_2026-01-29_104222_240" loading="lazy"></p>
<p> </p>
<p><img src="https://img2024.cnblogs.com/blog/2149129/202601/2149129-20260129104929826-1996557648.png" alt="ScreenShot_2026-01-29_104227_184" loading="lazy"></p>
<p> </p>
<div>
<div>
<p><strong>效果</strong>:运行后,文件夹里会多出一个<code>readme.md</code>,打开就是 “你好”—— 相当于 <code>Node.js</code> 帮你写了个小文档!</p>
<h3 data-id="heading-4"><strong>总结</strong>:Node.js 的 “三板斧”,其实是 “三把钥匙”</h3>
<ul>
<li><code>http</code>是<strong>开服务器的钥匙</strong>:让你从 “网页浏览者” 变成 “网页搭建者”;</li>
<li><code>https</code>是<strong>连互联网的钥匙</strong>:让你从 “数据消费者” 变成 “数据获取者”;</li>
<li><code>fs</code>是<strong>控本地文件的钥匙</strong>:让你从 “文件操作者” 变成 “文件自动化管理者”。</li>
</ul>
<h2 data-id="heading-5"><strong>结语</strong></h2>
<p>从拉起一个 HTTP 服务,到拉取远程接口数据,再到操控本地文件,Node.js 的<code>http</code>、<code>https</code>与<code>fs</code>模块,本质是将 <strong>“网络通信”</strong> 与 <strong>“本地操作”</strong> 的底层能力封装成了开发者可直接调用的接口。掌握这三者,就相当于拿到了 <code>Node.js</code> 后端开发的 <strong>“入门密钥”</strong>,后续无论是构建 API 服务、处理数据流转,还是管理文件资源,都能以此为基,向外延伸出更复杂的应用场景。</p>
</div>
<div>
<h3 id="tid-D8HBxE">如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。</h3>
</div>
<p><em><img src="https://img2024.cnblogs.com/blog/2149129/202501/2149129-20250122165814748-630765389.png" alt="" loading="lazy"></em></p>
</div>
</div><br><br>
来源:https://www.cnblogs.com/smileZAZ/p/19547130
頁:
[1]