Express.js – 以任何方式显示文件/目录列表?
使用Express.js有没有办法显示一个文件/目录列表像apache当你访问一个没有索引文件的目录的URL – 所以它显示所有目录内容的列表?
有没有扩展或包,这是我不知道的? 还是我必须自己编码?
干杯,你摇滚! 🙂
目录列表中有一个全新的默认Connect中间件,名为directory
( source )。 它有很多风格,并有一个客户端search框。
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);
从Express 4.x开始,目录中间件不再与Express捆绑在一起。 你需要下载npm模块服务索引 。
然后,例如,在名为videos
的应用程序的根目录中显示文件/目录列表将显示如下所示:
var serveIndex = require('serve-index'); app.use(express.static(__dirname + "/")) app.use('/videos', serveIndex(__dirname + '/videos'));
以下代码将同时提供目录和文件
var serveIndex = require('serve-index'); app.use('/p', serveIndex(path.join(__dirname, 'public'))); app.use('/p', express.static(path.join(__dirname, 'public')));
这将为你做的工作:(新版本的快递需要单独的中间件)。 例如,你把你的文件放在“文件”文件夹下,并且你希望URL是“/ public”
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