🖥️ NodeJS专栏:Node.js从入门到精通
🖥️ 博主的内置前端之路:前端之行,任重道远(来自大三学长的模块万字自述)
🧧 个人社区:海底烧烤店ai(从前端到全栈)
🧑💼个人简介:即将大三的学生,一个不甘平庸的综合平凡人🍬
👉 你的一键三连是我更新的最大动力❤️!
🏆分享博主自用牛客网🏆:一个非常全面的小案面试刷题求职网站,真的例分离超级好用(点击跳转)🍬
前言
最近博主一直在牛客网刷题巩固基础知识,快来和我一起冲关升级吧!内置点击进入牛客网
在前面我们已经学习过Node.js
的模块fs
、path
与http
这三个内置模块,综合本篇文章将结合这几个模块写一个分离HTML文件的小案小案例(超级简单,一看就会!例分离),内置目的模块是巩固所学知识,加强记忆,综合让我们开始吧!小案
Node.js
往期文章可查阅专栏:Node.js从入门到精通
文章目录
- 前言
- 案例效果
- 定义主函数
- 定义正则表达式
- 定义抽离CSS的例分离函数
- 定义抽离JS的函数
- 定义抽离HTML的文件
- 启动分离任务
- 服务端运行测试
- 结语
案例效果
有这样一个main.html
文件:
我们需要分割这个main.html
文件,将其中的CSS
和JS
代码抽离到单独的.css
和.js
文件中,既将main.html
文件中的HTML
,CSS
,JS
代码分离到三个文件中,最终分离HTML
后的案例目录结构如下:
对于
main.html
中的css
,js
,html结构
代码自己随便写,只要这些css
和js
代码能发挥作用,能看出效果就行
定义主函数
定义一个createFile
函数,将其作为整个案例效果的主函数,我们只需将需要分割的HTML
文件的地址路径作为参数传递给createFile
函数即可实现分割该HTML
文件的功能:
在main.html
同级创建node.js
文件
// node.jsconst fs = require("fs");const path = require("path");// 主函数function createFile(src) { // 读取文件内容 fs.readFile(path.join(__dirname, src), "utf-8", (err, data) =>{ if (err) { return console.log("读取main.html失败!"); } // 调用处理函数 createCss(data); createJs(data); createHtml(data); });}
createFile
函数的功能很简单,就是通过fs.readFile
配合path.join
来读取指定路径的文件内容,读取成功后分别调用:
createCss
(抽离CSS的函数)createHtml
(抽离HTML的函数)createJs
(抽离JS的函数)
定义正则表达式
我们需要使用正则来提取main.html
文件中的css
和js
代码,所以这里定义两个正则表达式:
node.js
中添加以下代码
// node.js// \s表示空白字符;\S 表示非空白字符 ;* 表示匹配任意次const regCss = /
(内联CSS代码)和(内联JS代码)替换成外部导入的方式启动分离任务
调用
createFile
函数并启动node.js
文件,开始分离main.html
文件
node.js
中添加以下代码// node.jscreateFile("./main.html");
完整
node.js
文件如下:服务端运行测试
案例根目录下创建
server.js
用于启动node
服务器:// server.jsconst http = require("http");const fs = require("fs");const path = require("path");const server = http.createServer();server.on("request", (req, res) =>{ // 不匹配 /favicon.ico if (req.url === "/favicon.ico") { return; } // 根据请求路径去获取文件地址 const fpath = path.join(__dirname, req.url); // 读取文件内容 fs.readFile(fpath, "utf-8", (err, data) =>{ if (err) { return console.log(err); } // 返回读取的内容 res.end(data); });});server.listen(3000, () =>{ console.log("服务器启动成功!");});
此时浏览器访问
http://localhost:3000/main.html
与http://localhost:3000/static/index.html
会发现展示效果一致,这就说明我们分割main.html
文件后获得的index.html
是正常的访问
http://localhost:3000/static/index.html
发现页面
、css
、js
都能正常加载,index.html
中引入css
路径是./index.css
,./
代表同级,则相当于是请求了http://localhost:3000/static/index.css
,所以通过path.join
能正确找到该css
路径并正确加载该css
,加载js
文件同理在本地打开
main.html
和/static/index.html
文件也能验证我们是否分离成功,这里使用node
服务器进行测试完全是为了加强巩固一下node
知识结语
好啦,这个分离HTML的小案例到此就结束了,是不是超级简单呢,赶快动手去试试吧!
如果你在食用过程中对
fs
,path
,http
等这些内置模块有不熟悉的地方,可以去我的Node.js专栏
进行学习 👉 Node.js从入门到精通订阅专栏,关注博主,学习前端(进击全栈)不迷路!
如果本篇文章对你有所帮助,还请客官一件四连!❤️
基础不牢,地动山摇!快来和博主一起来牛客网刷题巩固基础知识吧!