已安装express和serve-favicon仍报favicon中间件需单独安装如何解决
问题根源
你代码中虽然已经安装并引入了serve-favicon依赖,但仍然调用了Express核心库中已废弃的express.favicon()方法,这是触发报错的直接原因。Express v4+版本已将favicon、logger等非核心中间件全部移出内置模块,不存在express.favicon这个方法。
修复方案
将你代码里的这一行:
app.use(express.favicon('public/favicon.ico'));
替换为直接调用你已经引入的favicon实例即可:
app.use(favicon('public/favicon.ico'));
额外排查建议
如果修改后仍有加载异常,可在项目根目录执行以下命令将依赖安装到项目本地,避免全局包路径不匹配的问题:
npm install express serve-favicon --save
修改后的完整可运行代码
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);
内容的提问来源于stack exchange,提问作者cubesareneat
相关产品推荐
相关产品推荐

