2011-06-09 47 views

回答

43

對於目錄列表,有一個全新的默認Connect middleware named directorysource)。它有很多風格,並有一個客戶端搜索框。

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); 
+2

它的工作非常美麗!好極了! – balupton 2011-06-30 00:43:48

+11

我提出了一個由於理解超出理由而被拒絕的編輯。 >由於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

+6

目錄中間件已拆分出來,現在在這裏找到︰https://github.com/expressjs/serve-index – gdw2 2014-08-08 20:00:02

28

從Express 4.x開始,目錄中間件不再與express捆綁在一起。您需要下載npm模塊serve-index

然後,例如,在被稱爲videos應用程序的根目錄顯示在目錄中的文件/目錄列表看起來像:

var serveIndex = require('serve-index'); 

    app.use(express.static(__dirname + "/")) 
    app.use('/videos', serveIndex(__dirname + '/videos')); 
+0

感謝您使用最新的指針。讚賞。 – 2015-02-17 06:45:27

+0

謝謝你。額外的問題,如果我服務的文件夾(作爲根),然後提供2個目錄(位於其他地方)作爲子文件夾,他們不會列出瀏覽根時。無論如何解決這個問題? – ianbeks 2015-10-02 09:02:30

+0

即服務索引不允許下載該文件,有沒有什麼辦法從服務器下載文件索引 – ArUn 2016-06-02 06:09:46

12

下面的代碼將成爲這兩個目錄和文件

var serveIndex = require('serve-index'); 
app.use('/p', serveIndex(path.join(__dirname, 'public'))); 
app.use('/p', express.static(path.join(__dirname, 'public'))); 
+1

這是一個很重要的事情!在接受的答案中,文件是可訪問的,因爲「serveIndex」根在靜態根下面。謝謝! – arichards 2016-05-12 15:48:37

+0

有沒有一種方法使這個列表的時間順序,而不是字母數字與此? – fbence 2016-05-17 13:16:44

+0

'serveindex'服務目錄和文件沒有這個額外的行,據我所知.. – 1252748 2016-10-19 15:41:16

3

這會爲你做的工作:(新版本的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 
+0

工作很好,謝謝! 您也可以爲圖標執行'serveIndex('files',{icons:true})''。 – gkiely 2017-11-29 02:43:06

相關問題