web-dev-qa-db-ja.com

Node.jsで、.htmlファイルのディレクトリを読み取り、その中の要素属性を検索していますか?

これがどのように行われるかについて考えることすらできません。基本的に、フォルダーを想像してください。その中に静的なWebサイトがあります。すべての画像、スタイル、htmlファイルなどがあります。myNode applicationを使用して、このフォルダー内を調べ、.htmlファイルのみを取得し、.htmlファイルのみを選択しますその中に 'data-template = "home"'属性があります。

これは少し奇妙に思えるかもしれませんが、ユーザーが静的なWebサイトファイルをアップロードしてから、Nodeアプリがファイルに対して処理を行う必要があるプロジェクトの場合です。

とにかく、特定のファイルタイプを繰り返し処理してからそれらの内部を調べることに興味があっただけです。

ジェームス、ありがとう

23
littlejim84

このコードは、ディレクトリ内のすべてのファイルをスキャンしてから、.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
    }
}

さらに柔軟性が必要な場合は、cheerioモジュールを使用して、その属性を持つHTMLファイル内の要素を探すこともできます。

var cheerio = require('cheerio');

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

    if ($('html[data-template="home"]').length) {
        // do something
    }
}
54
mak

Nodejsファイルシステムモジュールを見てください。

http://nodejs.org/docs/v0.5.3/api/fs.html

Fs.readdir()を使用してすべてのファイルの名前を取得し、.htmlのファイルを読み取って 'data-template = home'を見つけることができます。

2
shelman