0

在我的项目中,我需要动态存储一些文本文件,最终用户应该能够从浏览器下载它们。我知道最好的方法是使用像 MINIO 或 S3 这样的对象存储,但不幸的是,我唯一的方法是在内存存储中使用。所以我想做的是:我创建了一个公用文件夹,并使用以下代码公开了它:

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

//setting middleware
app.use(express.static( 'public')); //Serves resources from public folder


var server = app.listen(5000);

它是如此简单。然后为了测试只是为了确保我可以下载并访问一个文件,我创建了一个包含 t.txt 文件的公共文件夹,当我尝试时:

http://localhost:5000/public/t.txt

我明白了

在此处输入图像描述

那我为什么不明白呢?另外,我想要实现的目标是否与场景非常匹配,它是否可行?

4

2 回答 2

1

当您没有在 中指定路径时,您的应用程序将在路径上app.use()提供您指向的目录的内容。尝试这个:express.static()

http://localhost:5000/t.txt

也就是说,如果您希望它可以在 处访问/public/t.txt,只需指定路径:

app.use('/public', express.static('public'))
于 2020-01-23T03:30:59.097 回答
1

首先使用以下代码行:

app.use(express.static(__dirname+'/public')); 

这意味着静态 HTML 页面的主目录位于“公共”文件夹中。注意“__dirname”指向当前js文件的目录。

之后,从浏览器或 POSTMAN 调用以下 URL:

http://localhost:5000/t.txt

如您所见,没有必要http://localhost:5000/public/t.txt提及“public”文件夹,因为您已经在 app.use 行中指定了它。

于 2020-01-23T04:00:32.760 回答