0

簡単な質問だと思いますが、自分で解決することはできません。

(Express + NodeJS を使用しています)

私が欲しいのは、そこに含まれるファイルを含むディレクトリのリストです。ユーザーがリンクをクリックするだけでファイルをダウンロードできるように、ファイルはリンクされます (たとえば、インデックス ファイルのない Apache サーバーがある場合に得られる標準のディレクトリ リストのように)。

使用するディレクトリの内容を一覧表示するには

var fs = require('fs');
fs.readdir('./anydir', function(err, files){
    files.forEach(function(file){
        res.send(file);
    });
});

(注意: ご覧のとおり、この例にはエラー処理は含まれていません)

今、私は変更してファイルをリンクしようとしました

res.send(file)

res.send('<a href=\"' + file + '\">' + file + '<br>');

しかし、これはエラーメッセージを出力するだけです:

Cannot GET /anydir/File

... app.js ですべてのファイル要求を処理したわけではないためです。

上記の目標を達成するにはどうすればよいですか?

4

2 に答える 2

1

ヘッダーを設定するためのユーザー定義のミドルウェアと一緒に、ミドルウェアとしてexpress.directoryandを使用するだけです。express.staticContent-Disposition

于 2013-01-31T04:16:46.170 に答える
0

これは私のために働いた:

var fs = require('fs');
fs.readdir('/var/', function(err, files){
    files.forEach(function(file){
        res.write('<a href=\"' + file + '\">' + file + '<br>');
    });
});

send() ではなく write() でコンテンツを入れます。これを試して、私に知らせてください。ファイルのリストが正しく表示されていることがわかります。これがお役に立てば幸いです。

于 2013-01-30T14:56:54.627 に答える