favicon を提供するための Node.js ミドルウェア。
favicon は、ブラウザなどのクライアントソフトウェアがサイトを識別するために使用する視覚的な手がかりです。例と詳細については、favicon に関する Wikipedia の記事をご覧ください。
このモジュールを使用する理由?
favicon.ico
を頻繁かつ無差別にリクエストするため、ロガーミドルウェアの前にこのミドルウェアを使用することで、これらのリクエストをログから除外することができます。ETag
を提供します。Content-Type
で提供します。注 このモジュールは、GET /favicon.ico
である「デフォルトの暗黙的な favicon」を提供するための専用です。HTML マークアップを必要とするベンダー固有の追加アイコンについては、関連ファイルを配信するために追加のミドルウェア (例: serve-static) が必要です。
これは、Node.js モジュールであり、npm レジストリから入手できます。インストールは、npm install
コマンドを使用して行います。
$ npm install serve-favicon
指定された path
から favicon ファイルを提供する新しいミドルウェアを作成します。path
は、提供するアイコンの Buffer
であってもかまいません。
serve-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)