middleware serve-favicon
middleware de Node.js para servir un favicon.
Un favicon es una pista visual que el software cliente, como los navegadores, usa para identificar un sitio. Para un ejemplo y más información, visita el artículo de Wikipedia sobre favicons.
¿Por qué usar este módulo?
- Los user agents solicitan
favicon.icofrecuentemente y de forma indiscriminada, así que puedes querer excluir estas peticiones de tus logs usando este middleware antes de tu middleware de logger. - Este módulo almacena el icono en memoria para mejorar el rendimiento evitando el acceso al disco.
- Este módulo proporciona un
ETagbasado en el contenido del icono, en lugar de las propiedades del sistema de archivos. - Este módulo servirá con el
Content-Typemás compatible.
Nota Este módulo es exclusivamente para servir el “favicon implícito por defecto”,
que es GET /favicon.ico. Para iconos adicionales específicos de cada proveedor que requieren
marcado HTML, se necesita middleware adicional para servir los archivos relevantes, por
ejemplo serve-static.
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:
npm install serve-faviconyarn add serve-faviconpnpm add serve-faviconbun add serve-faviconAPI
favicon(path, options)
Crea un nuevo middleware para servir un favicon desde el path dado a un archivo favicon.
path también puede ser un Buffer del icono a servir.
Opciones
serve-favicon acepta estas propiedades en el objeto options.
maxAge
La directiva cache-control max-age en ms, por defecto 1 año. Esto también
puede ser una cadena aceptada por el módulo ms.
Ejemplos
Típicamente este middleware irá muy al principio en tu stack (quizás incluso primero)
para evitar procesar cualquier otro middleware si ya sabemos que la petición es para
/favicon.ico.
express
var express = require('express');var favicon = require('serve-favicon');var path = require('path');
var app = express();app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
// Add your routes here, etc.
app.listen(3000);connect
var connect = require('connect');var favicon = require('serve-favicon');var path = require('path');
var app = connect();app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
// Add your middleware here, etc.
app.listen(3000);servidor http vanilla
Este middleware puede usarse en cualquier lugar, incluso fuera de express/connect. Toma
req, res, y callback.
var http = require('http');var favicon = require('serve-favicon');var finalhandler = require('finalhandler');var path = require('path');
var _favicon = favicon(path.join(__dirname, 'public', 'favicon.ico'));
var server = http.createServer(function onRequest(req, res) { var done = finalhandler(req, res);
_favicon(req, res, function onNext(err) { if (err) return done(err);
// continue to process the request here, etc.
res.statusCode = 404; res.end('oops'); });});
server.listen(3000);