Black Lives Matter(黒人の命は大切だ)。
Equal Justice Initiative を支援しましょう.

serve-favicon

NPM Version NPM Downloads Linux Build Windows Build Test Coverage

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

API

favicon(path, options)

指定された path から favicon ファイルを提供する新しいミドルウェアを作成します。path は、提供するアイコンの Buffer であってもかまいません。

オプション

serve-favicon は、オプションオブジェクトでこれらのプロパティを受け入れます。

maxAge

cache-controlmax-age ディレクティブ (ms 単位)。デフォルトは 1 年です。ms モジュールで受け入れられる文字列でもかまいません。

通常、このミドルウェアは、リクエストが /favicon.ico 向けであることがすでにわかっている場合、他のミドルウェアの処理を回避するために、スタックの非常に早い段階 (おそらく最初) に配置されます。

express

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)

connect

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)

バニラ HTTP サーバー

このミドルウェアは、express/connect の外部でも、どこでも使用できます。reqres、および 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)

ライセンス

MIT