指定されたパスのディレクトリリストを含むページを提供します。
これはNode.jsモジュールであり、npmレジストリを通じて利用できます。インストールはnpm install コマンドを使用して行います。
$ npm install serve-index
var serveIndex = require('serve-index')
指定されたpath内のディレクトリのインデックスを提供するミドルウェアを返します。
pathはreq.urlの値に基づいており、pathが'public'の場合、req.urlが'/some/dir'の場合、'public/some/dir'を参照します。expressのようなものを使用している場合は、app.useを使用してURLの「ベース」を変更できます(expressの例を参照)。
serve-indexは、オプションオブジェクトで次のプロパティを受け入れます。
このフィルター関数をファイルに適用します。デフォルトはfalseです。filter関数は、各ファイルに対して呼び出され、シグネチャはfilter(filename, index, files, dir)です。filenameはファイルの名前、indexは配列インデックス、filesはファイルの配列、dirはファイルが配置されている絶対パス(したがって、リストの対象となるディレクトリ)です。
隠しファイル(ドットファイル)を表示します。デフォルトはfalseです。
アイコンを表示します。デフォルトはfalseです。
CSSスタイルシートへのオプションパス。デフォルトは組み込みのスタイルシートです。
HTMLテンプレートへのオプションパス、またはHTML文字列をレンダリングする関数。デフォルトは組み込みのテンプレートです。
文字列が指定された場合、文字列はロードするファイルパスとして使用され、次のトークンがテンプレート内で置換されます。
{directory} はディレクトリの名前。{files} はファイルのリンクの順不同リストのHTML。{linked-path} はディレクトリへのリンクのHTML。{style} は指定されたスタイルシートと埋め込み画像。関数として指定された場合、関数はtemplate(locals, callback)として呼び出され、callback(error, htmlString)を呼び出す必要があります。以下は提供されるローカル変数です。
directory は表示されているディレクトリです(/はルートです)。displayIcons はアイコンをレンダリングするかどうかのブール値です。fileList はディレクトリ内のソートされたファイルの配列です。配列には次のプロパティを持つオブジェクトが含まれます。name はファイルの相対名です。stat はファイルのfs.Statsオブジェクトです。path はdirectoryへの完全なファイルシステムパスです。style はデフォルトのスタイルシート、またはstylesheetオプションの内容です。viewName はviewオプションで提供されるビュー名です。表示モード。tilesおよびdetailsが利用可能です。デフォルトはtilesです。
var finalhandler = require('finalhandler')
var http = require('http')
var serveIndex = require('serve-index')
var serveStatic = require('serve-static')
// Serve directory indexes for public/ftp folder (with icons)
var index = serveIndex('public/ftp', {'icons': true})
// Serve up public/ftp folder files
var serve = serveStatic('public/ftp')
// Create server
var server = http.createServer(function onRequest(req, res){
  var done = finalhandler(req, res)
  serve(req, res, function onNext(err) {
    if (err) return done(err)
    index(req, res, done)
  })
})
// Listen
server.listen(3000)
var express    = require('express')
var serveIndex = require('serve-index')
var app = express()
// Serve URLs like /ftp/thing as public/ftp/thing
// The express.static serves the file contents
// The serveIndex is this module serving the directory
app.use('/ftp', express.static('public/ftp'), serveIndex('public/ftp', {'icons': true}))
// Listen
app.listen(3000)
