首页 > 解决方案 > 尽管我使用 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

我明白了

在此处输入图像描述

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

标签: node.jsexpressnodejs-server

解决方案


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

http://localhost:5000/t.txt

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

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

推荐阅读