在Node.js中,读取.html文件的目录并在其中搜索元素属性?

lit*_*m84 23 html javascript file-type file node.js

我甚至无法开始思考如何做到这一点.基本上,想象一个文件夹,它有一个静态网站.它包含所有图像,样式和html文件等.使用我的Node应用程序,我想查看此文件夹,只获取.html文件,然后选择具有属性'data-template ="的.html文件家里"'在他们里面.

我知道这似乎有点奇怪,但它是一个项目,要求用户上传他们的静态网站文件,然后我的节点应用程序做他们的文件.

无论如何,只是好奇迭代某些文件类型,然后查看它们...任何帮助接近这将真的帮助我.

非常感谢,詹姆斯

mak*_*mak 54

这段代码将扫描目录中的所有文件,然后读取.html文件的内容,然后data-template="home"在其中查找字符串.

var fs = require('fs');

fs.readdir('/path/to/html/files', function(err, files) {
    files
         .filter(function(file) { return file.substr(-5) === '.html'; })
         .forEach(function(file) { fs.readFile(file, 'utf-8', function(err, contents) { inspectFile(contents); }); });
});

function inspectFile(contents) {
    if (contents.indexOf('data-template="home"') != -1) {
        // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您需要更多灵活性,您还可以使用该cheerio模块在html文件中查找具有该属性的元素:

var cheerio = require('cheerio');

function inspectFile(contents) {
    var $ = cheerio.load(contents);

    if ($('html[data-template="home"]').length) {
        // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 一百万年没想过会那么容易.非常感谢!真是太棒了!谢谢. (4认同)