我想这只是一个简单的问题,但我无法自己解决。
(我正在使用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中的每个文件请求。
如何实现上述目标?
答案 0 :(得分:1)
只需使用express.directory
和express.static
作为中间件,可能使用用户定义的中间件来设置Content-Disposition
标头。
答案 1 :(得分:0)
这对我有用:
var fs = require('fs');
fs.readdir('/var/', function(err, files){
files.forEach(function(file){
res.write('<a href=\"' + file + '\">' + file + '<br>');
});
});
你把内容写成write()而不是send()。 试试这个,让我知道。我可以看到正确显示的文件列表。 希望这会对你有所帮助。