Cuando el navegador carga un sitio web por primera vez, solicitará automáticamente /favicon.ico ( GET ) para cargar favicon. Un favicon es un archivo de tamaño pequeño conocido como ícono de sitio web, ícono de pestaña, ícono de URL o ícono de marcador. El módulo serve-favicon se usa para servir favicon desde el servidor NodeJS.
¿Por qué usar este módulo?
- Los agentes de usuario solicitan con frecuencia e indiscriminadamente favicon. Utilice este middleware antes que su middleware de registrador para excluir estas requests de los registros.
- favicon.ico es un archivo de tamaño pequeño, este módulo almacena en caché el favicon en la memoria para brindar un mejor rendimiento al omitir el acceso a dick.
- Este módulo proporciona una ETag para el icono.
- Este módulo proporciona un tipo de contenido compatible para el icono.
Configuración del proyecto e instalación del módulo:
-
Paso 1: Cree una aplicación NodeJS y asígnele el nombre Proyecto usando el siguiente comando.
mkdir Project && cd Project npm init -y
-
Paso 2: instale los módulos de dependencia con el siguiente comando.
npm install express serve-favicon
-
Paso 3: Genere un favicon desde aquí o descargue el favicon de GFG y colóquelo en su directorio raíz. Luego cree index.html y server.js en su directorio de Proyecto .
Directorio de proyectos: Se verá así.
Ejemplo:
index.html
<!DOCTYPE html> <html> <head> <title>GeeksForGeeks</title> </head> <body> <h1 style="color: green;"> GeeksForGeeks </h1> </body> </html>
server.js
// Import modules const favicon = require('serve-favicon'); const express = require('express') const app = express() // Returns a middleware to serve favicon app.use(favicon(__dirname + '/favicon.ico')); // API endpoint to serve index app.get('/', (_, res)=> res.sendFile(__dirname + '/index.html')) // Start the server app.listen(8080);
Paso para ejecutar la aplicación: Ejecute server.js usando el siguiente comando
node server.js
Salida: Abra el navegador y vaya a http://localhost:8080/ , veremos la siguiente salida en pantalla.
Nota: Recuerde, serve-favicon solo sirve el favicon implícito predeterminado, que es GET /favicon.ico . Use serve-static para íconos específicos del proveedor que requieren marcado HTML.