W Węźle.js, czytając katalog.pliki html i wyszukiwanie w nich atrybutów elementów?
Nie mogę nawet zacząć myśleć o tym, jak to zrobić. Zasadniczo wyobraź sobie folder, w którym znajduje się statyczna strona internetowa. Posiada wszystkie obrazy, style i pliki html itp. Z mojej aplikacji węzła, chcę zajrzeć do tego folderu, uzyskać tylko .tylko pliki html, a następnie wybierz tylko .pliki html, które mają w sobie atrybut 'data-template="home".
Wiem, że to może trochę dziwne, ale to dla projektu, który wymaga od użytkownika przesłania ich statyczne pliki strony internetowej, a następnie Moja aplikacja węzeł robi rzeczy do nich plików.
W każdym razie, byłem po prostu ciekaw iteracji pewnych typów plików, a następnie zaglądanie do ich wnętrza... Każda pomoc w podchodzeniu do tego naprawdę mi pomoże.
Wielkie dzięki, James
2 answers
Ten fragment kodu skanuje wszystkie pliki w katalogu, następnie odczytuje zawartość .html
plików, a następnie wyszukuje w nich ciąg znaków 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
}
}
Jeśli potrzebujesz większej elastyczności, możesz również użyć modułu cheerio
, Aby wyszukać element w pliku html z tym atrybutem:
var cheerio = require('cheerio');
function inspectFile(contents) {
var $ = cheerio.load(contents);
if ($('html[data-template="home"]').length) {
// do something
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-13 21:25:36
Spójrz na moduł systemu plików nodejs
Http://nodejs.org/docs/v0.5.3/api/fs.html
Możesz użyć fs.readdir () aby pobrać nazwy wszystkich plików, przeczytaj .HTML do znalezienia 'data-template=home'.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-05 16:28:02