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