Express.js-如何从任意目录提供文件?

时间:2018-06-22 18:52:30

标签: node.js express

我正在尝试通过node.js应用程序提供任意目录,但我不断得到Cannot GET /

var express = require('express');
var app = express();

app.use("C:/test/", express.static('C:/test/'))

我希望它显示一个网页,该网页显示(指定目录的)文件列表和下载链接。这样,当我从本地设备访问URL时,会看到类似以下内容的

C:/test/file1.png - download link
C:/test/file2.mp4  - download link

有可能吗?

1 个答案:

答案 0 :(得分:0)

发送单个文件的最简单方法似乎是使用download方法:

app.get('/uniquePathHere', function (req, res) {
  res.download('C:/test/1.png', '1.png');
})

在本地设备上,打开服务器的IP(路由器分配给计算机的IPv4地址),例如:

192.168.0.105:3000/uniquePathHere

它将自动开始下载

如果要显示目录的所有文件,可以使用注释中建议的解决方案:

app.use('/ftp', express.static('C:/test/'), serveIndex('C:/test/', {'icons': true}))

然后访问服务器的IP,例如:

192.168.0.105:3000/ftp

如何获取服务器IP

var ip = require("ip")
console.log(ip.address())