node.js - 尽管我使用 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
我明白了
那我为什么不明白呢?另外,我想要实现的目标是否与场景非常匹配,它是否可行?
解决方案
当您没有在 中指定路径时,您的应用程序将在根路径上app.use()
提供您指向的目录的内容。尝试这个:express.static()
http://localhost:5000/t.txt
也就是说,如果您希望它可以在 处访问/public/t.txt
,只需指定路径:
app.use('/public', express.static('public'))
推荐阅读
- python - Python Selenium 在没有 driver.refresh() 的情况下查询页面元素
- c - 将字符串拆分为不同的部分,没有空格和分隔符
- python - 日期/月份计算
- python - TensorFlow - TFRecords 加载和转换带有边界框的图像
- amazon-web-services - AWS CLI 无法向 API Gateway 阶段变量添加权限
- javascript - 图像旁边的定位按钮
- blazor-webassembly - Blazor Webassembly 应用程序如何知道哪个用户已登录服务器端?
- kubernetes - 数据未跨容器共享
- python - 似乎不明白错误的原因
- regex - 为什么 sed 的正则表达式分组与普通正则表达式不同?