尽管我使用Express

在我的项目中,我需要动态存储一些文本文件,最终用户应该能够从浏览器下载它们。我知道最好的方法是使用像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

我知道

尽管我使用Express

那我为什么不明白呢?同样,我要实现的目标将与场景很好地匹配,并且完全可行吗?

d228489 回答:尽管我使用Express

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

http://localhost:5000/t.txt

也就是说,如果您想在/public/t.txt上访问它,只需指定路径即可:

app.use('/public',express.static('public'))
,

首先使用以下代码行:

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

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

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

http://localhost:5000/t.txt

如您所见,由于您已经在app.use行中指定了该文件夹,因此无需写http://localhost:5000/public/t.txt来引用“ public”文件夹。

本文链接:https://www.f2er.com/2728134.html

大家都在问