与Express.js有没有办法显示一个文件/目录列表像apache当你访问没有索引文件的目录的URL - 因此它显示所有目录内容的列表?Express.js - 显示文件/目录列表的任何方式?
有没有这样做的扩展或包,我不知道?还是我必须自己编码?
干杯家伙,你摇滚! :)
与Express.js有没有办法显示一个文件/目录列表像apache当你访问没有索引文件的目录的URL - 因此它显示所有目录内容的列表?Express.js - 显示文件/目录列表的任何方式?
有没有这样做的扩展或包,我不知道?还是我必须自己编码?
干杯家伙,你摇滚! :)
对于目录列表,有一个全新的默认Connect middleware named directory
(source)。它有很多风格,并有一个客户端搜索框。
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模块serve-index。
然后,例如,在被称为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')));
这会为你做的工作:(新版本的express需要单独的中间件)。例如。你把你的文件放在文件夹'文件'下,并且你想要的网址是'/ 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
工作很好,谢谢! 您也可以为图标执行'serveIndex('files',{icons:true})''。 – gkiely 2017-11-29 02:43:06
它的工作非常美丽!好极了! – balupton 2011-06-30 00:43:48
我提出了一个由于理解超出理由而被拒绝的编辑。 >由于express到3.x,'express.createServer()'被弃用,应该用'express()'替换。 (有关更多详细信息,请参阅[更改日志](https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x)) – 2013-10-17 15:14:41
目录中间件已拆分出来,现在在这里找到︰https://github.com/expressjs/serve-index – gdw2 2014-08-08 20:00:02