黑人的命也是命。
支持平等正义倡议.

serve-index

NPM Version NPM Downloads Linux Build Windows Build Test Coverage

为给定路径提供包含目录列表的页面。

安装

这是一个通过 npm 注册表 可用的 Node.js 模块。安装使用 npm install 命令 完成。

$ npm install serve-index

API

var serveIndex = require('serve-index')

serveIndex(path, options)

返回中间件,该中间件提供给定 path 中目录的索引。

path 基于 req.url 值,因此 req.url'/some/dirpath'public' 将查看 'public/some/dir'。如果您使用的是 express 之类的东西,您可以使用 app.use 更改 URL“基础”(请参阅 express 示例)。

选项

Serve index 在选项对象中接受这些属性。

filter

将此过滤器函数应用于文件。默认为 falsefilter 函数针对每个文件调用,签名为 filter(filename, index, files, dir),其中 filename 是文件名,index 是数组索引,files 是文件数组,dir 是文件所在的绝对路径(因此,列表所在的目录)。

hidden

显示隐藏(点)文件。默认值为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 对象。
  • pathdirectory 的完整文件系统路径。
  • style 是默认样式表或stylesheet 选项的内容。
  • viewNameview 选项提供的视图名称。
视图

显示模式。tilesdetails 可用。默认值为tiles

示例

使用原生 node.js http 服务器提供目录索引

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)

使用 express 提供目录索引

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)

许可证

MITSilk 图标由 FAMFAMFAM 创建/版权所有。