javascript - node - socket io tutorial
En Node.js, ¿leer un directorio de archivos.html y buscar atributos de elementos dentro de ellos? (2)
Ni siquiera puedo empezar a pensar en cómo se haría esto. Básicamente, imagina una carpeta y tiene un sitio web estático. Tiene todas las imágenes, estilos y archivos html, etc. Con mi aplicación Node, quiero mirar dentro de esta carpeta, obtener solo los archivos .html y luego seleccionar los archivos .html que tienen el atributo ''data-template = " casa "''dentro de ellos.
Sé que esto puede parecer un poco extraño, pero es para un proyecto que requiere que el usuario cargue sus archivos de sitios web estáticos y luego mi aplicación Node hace cosas con ellos.
De todos modos, tenía curiosidad por iterar sobre ciertos tipos de archivos y luego mirar dentro de ellos ... Cualquier ayuda para abordar esto realmente me ayudaría.
Muchas gracias james
Eche un vistazo al módulo del sistema de archivos nodejs
http://nodejs.org/docs/v0.5.3/api/fs.html
Podría usar fs.readdir () para obtener los nombres de todos los archivos, y luego leer los .html para encontrar ''data-template = home''.
Este fragmento de código buscará todos los archivos en un directorio, luego leerá el contenido de los archivos .html
y luego buscará una cadena de data-template="home"
en ellos.
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
}
}
Si necesita más flexibilidad, también puede usar el módulo cheerio
para buscar un elemento en el archivo html con ese atributo:
var cheerio = require(''cheerio'');
function inspectFile(contents) {
var $ = cheerio.load(contents);
if ($(''html[data-template="home"]'').length) {
// do something
}
}