與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