美文网首页程序员
node.js拼接小工具

node.js拼接小工具

作者: Elliott_077d | 来源:发表于2018-06-17 10:02 被阅读22次

之前的工作有很多的部分是写cms的模板,对应于不同的页面,这些页面的头部和尾部大多一样,每次复制粘贴很麻烦,还容易出错。考虑到node.js关于fs模块的部分,应该可以做一个工具来进行操作,所以有了这样一个想法。

so,let's start!

首先,要引入node.js里面两个最重要的模块fspath

var fs  = require('fs');
var path = require('path');

读写操作的过程中,不得不说是踩过一些坑的,上来就是想当然的使用了fs.readFile()方法,读取文件,然后fs.writeFile()加上fs.appendFile(),在测试的过程中发现,结果不能保证拼接的顺序。

事实上,node提供了同步的方法来进行操作。

var headString = fs.readFileSync('head.html').toString();
var footString = fs.readFileSync('foot.html').toString();

这样用了两个变量就存储了头部和尾部的部分,然后就是appendFile(),正当我准备这么做的时候,我想到了既然都是字符串,先做好拼接再写入会很妥当一些。另外生成的页面名称也需要和中间主要的部分做关联。

所以有了

function buildPage(pagename) {
    var pageString = fs.readFileSync(pagename).toString();
    var page = headString + pageString + footString;
    fs.writeFileSync(`./pages/${pagename}`, page);
}

注:这里生成的文件目录我写成了pages,你也可以用其他

然后就是读取当前文件夹下的文件名了,并且要去掉head.htmlfoot.html这两个文件,做个遍历,然后筛选。

var nameArr = fs.readdirSync(__dirname);

for (let index = 0; index < nameArr.length; index++) {
    if (nameArr[index].endsWith('.html') && nameArr[index] != 'head.html' && nameArr[index] != 'foot.html') {
        buildPage(nameArr[index])
    }
}

打开命令行,当前目录下执行

node build.js

大功告成!

当然,现在这个工具也有一些有待优化的地方:

  1. 生成后自动删除原来的拼接文件。
  2. 将拼好的文件取出来放到原目录下,以便能正确引入css和js文件。

最后附上完整的demo地址 https://github.com/SNJiang1992/nodetool

相关文章

  • node.js拼接小工具

    之前的工作有很多的部分是写cms的模板,对应于不同的页面,这些页面的头部和尾部大多一样,每次复制粘贴很麻烦,还容易...

  • 图片拼接

    图片拼接小工具,帮助你简单快速拼接长图~

  • 第十二天 长连接(net和socket.io)

    1. Node.js Net 模块(终端交互) Node.js Net 模块提供了一些用于底层的网络通信的小工具,...

  • node之path模块

    Node.js path 模块提供了一些用于处理文件路径的小工具,它是node.js内置模块,所以直接引入就可以:...

  • 截图自动拼接小工具

    https://github.com/xiangwangfeng/M80ImageMerger 缘起经常有这样的场...

  • 使用bioconda安装常用软件

    批量下载安装: 小工具:比对、cricos图、下载工具: 基因功能分析预测 基因组拼接 测序数据质控

  • Node.js Path 模块

    Node.js path 模块提供了一些用于处理文件路径的小工具,我们可以通过以下方式引入该模块: 对window...

  • Qplotools024-序列对齐,查看序列间的关系

    对双末端测序结果进行拼接,我们常常会因为拼不上而烦恼所以做了一个小工具,用来查看序列间是否存在overlap。或者...

  • 内网添加房卡和茶馆馆主

    为了方便工作而做的小工具,看名字肯定搞不清楚,透过现象看本质,就是利用hex和html,js连接node.js服务...

  • path.join与path.resolve

    是什么? path是node.js中一个用来处理路径的一个package。 区别 path.join作用:拼接多个...

网友评论

    本文标题:node.js拼接小工具

    本文链接:https://www.haomeiwen.com/subject/kwaieftx.html