用於提供 favicon 的 Node.js 中介軟體。
favicon 是視覺提示,例如瀏覽器等客戶端軟體用於識別網站。如需範例和更多資訊,請參閱 維基百科關於 favicon 的文章。
為何使用此模組?
注意 此模組專門用於提供服務給「預設、隱含的 favicon」,也就是 `GET /favicon.ico`。對於需要 HTML 標記的其他供應商特定圖示,需要額外的中介軟體來提供相關檔案,例如 serve-static。
這是一個 Node.js 模組,可透過 npm 註冊 取得。安裝是使用 npm install
指令 進行。
$ npm install serve-favicon
建立新的中介軟體,以從給定的 favicon 檔案 `path` 提供 favicon 服務。`path` 也可能是要提供的圖示的 `Buffer`。
提供 favicon 服務會在選項物件中接受這些屬性。
以 `ms` 為單位的 `cache-control` `max-age` 指令,預設為 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)