用于提供网站图标的 Node.js 中间件。
网站图标是客户端软件(如浏览器)用来识别网站的视觉提示。有关示例和更多信息,请访问 维基百科关于网站图标的文章。
为什么要使用此模块?
favicon.ico
,因此您可能希望在日志记录中间件之前使用此中间件将这些请求从日志中排除。ETag
,而不是文件系统属性。Content-Type
提供服务。注意 此模块专门用于提供“默认隐式 favicon”,即GET /favicon.ico
。对于需要 HTML 标记的其他特定于供应商的图标,需要额外的中间件来提供相关文件,例如 serve-static.
这是一个通过 npm 注册表 可用的 Node.js 模块。安装使用 npm install
命令 完成。
$ npm install serve-favicon
创建新的中间件,从给定的path
到 favicon 文件提供 favicon。path
也可以是将要提供的图标的Buffer
。
提供 favicon 在选项对象中接受这些属性。
cache-control
max-age
指令以ms
为单位,默认为 1 年。这也可以是 ms 模块接受的字符串。
通常,此中间件将在您的堆栈中非常早地出现(甚至可能是第一个),以避免在已知请求是针对/favicon.ico
时处理任何其他中间件。
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)
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)
此中间件可以在任何地方使用,即使在 express/connect 之外。它接受req
、res
和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)