middleware serve-index

Sirve páginas que contienen listados de directorios para una ruta dada.

Instalar

Este es un módulo de Node.js disponible a través del registro npm. La instalación se hace usando el comando npm install:

Ventana de terminal
npm install serve-index

API

var serveIndex = require('serve-index');

serveIndex(path, options)

Devuelve un middleware que sirve un índice del directorio en la path dada.

La path se basa en el valor de req.url, así que un req.url de '/some/dir con una path de 'public' buscará en 'public/some/dir'. Si estás usando algo como express, puedes cambiar la URL “base” con app.use (consulta el ejemplo de express).

Opciones

serve-index acepta estas propiedades en el objeto options.

filter

Aplica esta función de filtro a los archivos. Por defecto es false. La función filter se llama para cada archivo, con la firma filter(filename, index, files, dir) donde filename es el nombre del archivo, index es el índice del array, files es el array de archivos y dir es la ruta absoluta donde se encuentra el archivo (y por tanto, el directorio del listado).

hidden

Muestra archivos ocultos (dotfiles). Por defecto es false.

icons

Muestra iconos. Por defecto es false.

stylesheet

Ruta opcional a una hoja de estilos CSS. Por defecto usa una hoja de estilos integrada.

template

Ruta opcional a una plantilla HTML o una función que renderizará una cadena HTML. Por defecto usa una plantilla integrada.

Cuando se proporciona una cadena, la cadena se usa como ruta de archivo para cargarla y luego los siguientes tokens se reemplazan en las plantillas:

  • {directory} con el nombre del directorio.
  • {files} con el HTML de una lista desordenada de enlaces a archivos.
  • {linked-path} con el HTML de un enlace al directorio.
  • {style} con la hoja de estilos especificada y las imágenes incrustadas.

Cuando se proporciona como función, la función se llama como template(locals, callback) y debe invocar callback(error, htmlString). Los siguientes son los locals proporcionados:

  • directory es el directorio que se está mostrando (donde / es la raíz).
  • displayIcons es un Booleano que indica si se deben renderizar los iconos o no.
  • fileList is a sorted array of files in the directory. The array contains objects with the following properties:
    • name es el nombre relativo del archivo.
    • stat es un objeto fs.Stats del archivo.
  • path es la ruta completa del sistema de archivos al directory.
  • style es la hoja de estilos por defecto o el contenido de la opción stylesheet.
  • viewName es el nombre de la vista proporcionado por la opción view.
view

Modo de visualización. tiles y details están disponibles. Por defecto es tiles.

Ejemplos

Servir índices de directorio con un servidor http vanilla de node.js

var finalhandler = require('finalhandler');
var http = require('http');
var serveIndex = require('serve-index');
var serveStatic = require('serve-static');
// Serve directory indexes for public/ftp folder (with icons)
var index = serveIndex('public/ftp', { icons: true });
// Serve up public/ftp folder files
var serve = serveStatic('public/ftp');
// Create server
var server = http.createServer(function onRequest(req, res) {
var done = finalhandler(req, res);
serve(req, res, function onNext(err) {
if (err) return done(err);
index(req, res, done);
});
});
// Listen
server.listen(3000);

Servir índices de directorio con express

var express = require('express');
var serveIndex = require('serve-index');
var app = express();
// Serve URLs like /ftp/thing as public/ftp/thing
// The express.static serves the file contents
// The serveIndex is this module serving the directory
app.use('/ftp', express.static('public/ftp'), serveIndex('public/ftp', { icons: true }));
// Listen
app.listen(3000);

Licencia

MIT. Los iconos de Silk son creados por/copyright de FAMFAMFAM.