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)
