用 10 行代码就能当 “服务器老板”+“网络小偷”+“文件管家”?Node.js:别不信!

前言

当你叩开 Node.js 的大门,会发现它的内核逻辑恰似一套精密的 "后端工具链"http模块是搭建服务的 "基建脚手架" ,以极简代码就能拉起可被浏览器访问的 Web 端点https模块是对接外部世界的 "数据导管" ,能安全拉取远程接口的资源流;而fs模块则是连接本地存储的 "文件算子" ,实现磁盘内容的读写调度。这三者如同后端开发的 "基础三角",支撑起服务端程序最核心的能力骨架。

就像学会用锅铲、炒勺、漏勺 搞定一桌菜,Node.jshttphttpsfs"三板斧" ,能帮你轻松搞定服务搭建、网络请求、文件读写 这三件大事。那我们就来看看这 "三板斧",它们到底咋用?

第一斧 :用http模块,10 行代码搭个 Web 服务器

想象一下:你对着电脑喊 "我要开个网站" ,Node.js 的http模块立刻给你搬来服务器的 "零件",10 行代码就能让浏览器访问到你的页面。

比如这串代码:

JavaScript 复制代码
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')
})

效果 :打开浏览器输入http://localhost:3000/home,就能看到 "首页" 两个大字 ------ 是不是就10来行代码就出来了?

第二斧 :用https模块,"偷" 点网上的数据

如果说http"开商店" ,那https模块就是 "去别人家商店买东西"------ 比如从掘金 API 里扒点热门文章:

JavaScript 复制代码
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);
        })
    }
)

效果 :运行代码后,控制台会跳出掘金的文章数据 ------ 相当于 Node.js 帮你 "爬" 了个网页,是不是很神奇?

可能很多人觉得控制台的东西很乱,但中文你总认得了吧?明显看到热搜第一的文章:2025快手直播至暗时刻 。(也就是title那一行)。

第三斧 :用fs模块,让 Node.js 当 "文件管家"

电脑里的文件,Node.js 能用fs模块随便折腾:既能 "读" 文件里的内容,也能 "写" 新内容进去。

比如读文件

JavaScript 复制代码
const fs = require('fs'); // 搬来文件操作"管家"

// 读text.txt里的内容(就是那句"床前明月光")
fs.readFile('./text.txt', 'utf-8', (err, data) => {
    if (!err) {
        console.log(data); // 打印出"床前明月光,疑是地上霜"
    }
})

然后我们创建一个文件夹text.txt

node运行,就可以看到文本里的内容了:

再比如写文件

JavaScript 复制代码
// 往readme.md里写"你好"
fs.writeFile('./readme.md', '你好', (err) => {
    if (!err) {
        console.log('写入成功'); // 成功后控制台提示
    }
})

效果 :运行后,文件夹里会多出一个readme.md,打开就是 "你好"------ 相当于 Node.js 帮你写了个小文档!

总结:Node.js 的 "三板斧",其实是 "三把钥匙"

  • http开服务器的钥匙:让你从 "网页浏览者" 变成 "网页搭建者";
  • https连互联网的钥匙:让你从 "数据消费者" 变成 "数据获取者";
  • fs控本地文件的钥匙:让你从 "文件操作者" 变成 "文件自动化管理者"。

结语

从拉起一个 HTTP 服务,到拉取远程接口数据,再到操控本地文件,Node.js 的httphttpsfs模块,本质是将 "网络通信""本地操作" 的底层能力封装成了开发者可直接调用的接口。掌握这三者,就相当于拿到了 Node.js 后端开发的 "入门密钥",后续无论是构建 API 服务、处理数据流转,还是管理文件资源,都能以此为基,向外延伸出更复杂的应用场景。

本篇依旧是Node.js的基础知识,感兴趣的话可以配套另外一篇基础知识一起👀:

Steam玩累了?那用 Node.js 写个小游戏:手把手玩懂 JS 运行环境

相关推荐
昨晚我输给了一辆AE862 小时前
react-hook-form 初始化值为异步获取的数据的最佳实践
前端·react.js·强化学习
PieroPC2 小时前
NiceGUI 内置Material Design图标库
前端
Cache技术分享2 小时前
276. Java Stream API - 使用 flatMap 和 mapMulti 清理数据并转换类型
前端·后端
inferno2 小时前
CSS 基础(第一部分)
前端·css
m0_611349312 小时前
什么是副作用(Side Effects)
开发语言·前端·javascript
狗头大军之江苏分军2 小时前
她在结婚那天离开了:我们该重新谈谈“结婚这件事”
前端·后端
消失的旧时光-19432 小时前
从命令式跳转到声明式路由:前端、Android、Flutter 的一次统一演进
android·前端·flutter·状态模式
icestone_kai2 小时前
ngix开启跨域
前端
咸虾米_2 小时前
uniapp使用history路由模式打包上线到前端网页托管的注意事项
前端·uni-app·vue3·unicloud·前端网页托管