为给定路径提供包含目录列表的页面。
这是一个通过 npm 注册表 可用的 Node.js 模块。安装使用 npm install
命令 完成。
$ npm install serve-index
var serveIndex = require('serve-index')
返回中间件,该中间件提供给定 path
中目录的索引。
path
基于 req.url
值,因此 req.url
为 '/some/dir
且 path
为 'public'
将查看 '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)