es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

npm express no puede encontrar el middleware

He instalado npm express y serve-favicon, están presentes en npm ls y npm ls --global pero todavía obtengo Error: la mayoría de los middleware (como favicon) ya no se incluyen con Express y deben instalarse por separado

const https = require('https');
const fs = require('fs');

const express  = require('express');
const app = express();
const favicon = require('serve-favicon');

app.use(express.static('public'));
app.use(express.json());
app.use(favicon('public/favicon.ico'));

const options = {
  key: fs.readFileSync('key.pem'),
  cert: fs.readFileSync('cert.pem')
};

https.createServer(options, app).listen(8000);
Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema es que el código está intentando usar el middleware express.favicon, el cual ya no viene incluido en Express y ahora debe ser instalado por separado. Aunque el paquete serve-favicon está instalado, no está siendo utilizado correctamente.

    Para solucionar el problema, reemplaza express.favicon('public/favicon.ico') con favicon('public/favicon.ico'), de esta manera:

    const https = require('https');
    const fs = require('fs');
    
    const express  = require('express');
    const app = express();
    const favicon = require('serve-favicon');
    
    app.use(express.static('public'));
    app.use(express.json());
    app.use(favicon('public/favicon.ico'));
    
    const options = {
      key: fs.readFileSync('key.pem'),
      cert: fs.readFileSync('cert.pem')
    };
    
    https.createServer(options, app).listen(8000);
    

    Esto debería inicializar correctamente el middleware serve-favicon y resolver el mensaje de error.

Comments are closed.