写点什么

【Node.JS 练习】时钟案例

  • 2022-11-22
    河北
  • 本文字数:1359 字

    阅读完需:约 4 分钟

​案例要求 将素材目录下的 index.html 页面,拆分成三个文件,分别是:index.css,index.js,index.html


并且将拆分出的三个文件存放到 clock 目录中。


<style>body {


        background-image: linear-gradient(to bottom right, rgb(157, 30, 18), rgb(242, 197, 1));        background-attachment: fixed;    }
.container { width: 50%; height: 50vh; background-color: rgb(255, 255, 255); opacity: 0.2; position: relative; margin: 0 auto; top: 25vh; }
.container div { line-height: 150px; text-align: center; font-size: 50px; width: 50%; height: 150px; display: inline-block; position: absolute; inset: 0; margin: auto; }</style>
复制代码


</head>


<body>


</body><div class="container"><div><span>11:11:00</span><h2>index</h2></div></div>


<script>


</script>


实现步骤创建两个正则表达式,分别用来匹配<style>和<script>标签。使用 fs 模块,读取需要被处理的 html 文件。自定义 resolveCSS 方法,来写入 index.css 样式文件自定义 resolveJS 方法,来写入 index.js 脚本文件自定义 resolveHTML 方法,来写入 index.html 文件创建 正则表达式 const fs = require('fs');const path = require('path');//定义正则表达式 const restyle = /<style>[\s\S]</style>/const rescript = /<script>[\s\S]</script>/


引入 fs 模块和路径模块。


用正则表达式来匹配 style 标签,包含内部所有的空白和非空白字符,数量是任意个。


使用相关模块,读取需要被处理的 html 文件 fs.readFile(path.join(__dirname, '/index.Html'), 'utf-8', function (err, data) {if (err) {console.log('读取文件失败' + err);} else {console.log('读取文件成功');}


resolveCss(data);
复制代码


})


自定义 resolve 方法 cssfunction resolveCss(cssStr) {//正则匹配 cssconst r1 = restyle.exec(cssStr);//替换掉非必要标签 const newCss = r1[0].replace('<style>', '').replace('</style>', '');//将提取内容写入到 clock 目录中一个 index.css 中 fs.writeFile(path.join(__dirname, '/clock/index.css'), newCss, function (err) {if (err) {return console.log('导入 css 样式失败' + err);} else {console.log('写入样式成功');}


})
复制代码


}


生成了一个 css 文件


jsfunction resolveJS(jsStr) {//正则匹配 jsconst r1 = rescript.exec(jsStr);//替换掉非必要标签 const newJs = r1[0].replace('<script>', '').replace('</script>', '');//将提取内容写入到 clock 目录中一个 index.js 中 fs.writeFile(path.join(__dirname, '/clock/index.js'), newJs, function (err) {if (err) {return console.log('导入 js 样式失败' + err);} else {console.log('写入样式成功');}})


}


htmlfunction resolveHtml(htmlStr) {const newHtml = htmlStr.replace(restyle, '<link rel="stylesheet" href="./index.css"/>').replace(rescript, '<script src = "./index.js"></script>')fs.writeFile(path.join(__dirname, '/clock/index.html'), newHtml, function (err) {if (err) {console.log('导入 html 文件失败' + err);} else {console.log('导入成功');}})}


用户头像

还未添加个人签名 2022-10-14 加入

还未添加个人简介

评论

发布
暂无评论
【Node.JS 练习】时钟案例_11月月更_坚毅的小解同志_InfoQ写作社区