Express.js - есть ли способ отобразить файл / каталог? - PullRequest
34 голосов
/ 09 июня 2011

С Express.js есть ли способ отобразить список файлов / каталогов, как это делает apache, когда вы обращаетесь к URL-адресу каталога, в котором нет индексного файла - поэтому он отображает списоквсе содержимое этих каталогов?

Есть расширение или пакет, который делает это, о котором я не знаю?Или мне придется самому кодировать это?

Привет, ребята, вы молодцы!:)

Ответы [ 4 ]

44 голосов
/ 29 июня 2011

Существует совершенно новое значение по умолчанию Подключите промежуточное ПО с именем 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);
35 голосов
/ 10 декабря 2014

Начиная с Express 4.x, промежуточное ПО для каталогов больше не связано с Express.Вам нужно скачать модуль npm serve-index .

Тогда, например, отображение списков файлов / каталогов в каталоге в корне приложения с именем videos будет выглядеть следующим образом:

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

    app.use(express.static(__dirname + "/"))
    app.use('/videos', serveIndex(__dirname + '/videos'));
13 голосов
/ 25 марта 2015

Следующий код будет обслуживать как каталог, так и файлы

var serveIndex = require('serve-index');
app.use('/p', serveIndex(path.join(__dirname, 'public')));
app.use('/p', express.static(path.join(__dirname, 'public')));
4 голосов
/ 17 мая 2017

Это сделает работу за вас: (новая версия Express требует отдельного промежуточного программного обеспечения).Например, вы помещаете свои файлы в папку «files» и хотите, чтобы 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...