Express.js - any way to display a file/dir listing?
对于express.js,有没有一种方法可以像Apache那样显示一个文件/目录列表,当您访问一个没有索引文件的目录的URL时,它会显示所有目录内容的列表?
有没有我不知道的分机或包裹?还是我要自己编码?
干杯,伙计们,你们好摇滚!:)
目录列表中有一个全新的默认连接中间件,名为
1 2 3 4 5 6 7 8 9 10 11 | var express = require('express') , app = express.createServer(); app.configure(function() { var hourMs = 1000*60*60; app.use(express.static(__dirname + '/public', { maxAge: hourMs })); app.use(express.directory(__dirname + '/public')); app.use(express.errorHandler()); }); app.listen(8080); |
从Express4.x开始,目录中间件不再与Express捆绑在一起。您将要下载NPM模块服务索引。
然后,例如,要在名为
1 2 3 4 | var serveIndex = require('serve-index'); app.use(express.static(__dirname +"/")) app.use('/videos', serveIndex(__dirname + '/videos')); |
以下代码将同时服务于目录和文件
1 2 3 | var serveIndex = require('serve-index'); app.use('/p', serveIndex(path.join(__dirname, 'public'))); app.use('/p', express.static(path.join(__dirname, 'public'))); |
这将为您完成工作:(新版本的Express需要单独的中间件)。例如,您将文件放在文件夹"files"下,希望URL为"/public"
1 2 3 4 5 6 | var express = require('express'); var serveIndex = require('serve-index'); var app = express(); app.use('/public', serveIndex('files')); // shows you the file list app.use('/public', express.static('files')); // serve the actual files |