从Node.js服务器下载未命名文件时接收NotFoundError

杰克

我正在使用以下代码从Debian中的Node.js服务器下载文件:

var publicPath = __dirname + '/public';

app.get('/public/*', function (req, res) {
    var file = publicPath + req.path;
    res.sendFile(decodeURI(file));
}

除非文件未命名,否则文件将成功下载。例如,无法下载“ /public/.txt”或“ /public/.exe”(等效文件)。给出以下错误:

NotFoundError: Not Found
    at SendStream.error (/home/user/server/node_modules/send/index.js:270:31)
    at SendStream.pipe (/home/user/server/node_modules/send/index.js:585:14)
    at sendfile (/home/user/server/node_modules/express/lib/response.js:1099:8)
    at ServerResponse.sendFile (/home/user/server/node_modules/express/lib/response.js:429:3)
    at /home/user/server/server.js:279:6
    at Layer.handle [as handle_request] (/home/user/server/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/user/server/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/home/user/server/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/home/user/server/node_modules/express/lib/router/layer.js:95:5)
    at /home/user/server/node_modules/express/lib/router/index.js:281:22
    at param (/home/user/server/node_modules/express/lib/router/index.js:354:14)
    at param (/home/user/server/node_modules/express/lib/router/index.js:365:14)
    at Function.process_params (/home/user/server/node_modules/express/lib/router/index.js:410:3)
    at next (/home/user/server/node_modules/express/lib/router/index.js:275:10)
    at expressInit (/home/user/server/node_modules/express/lib/middleware/init.js:40:5)
    at Layer.handle [as handle_request] (/home/user/server/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/home/user/server/node_modules/express/lib/router/index.js:317:13)
    at /home/user/server/node_modules/express/lib/router/index.js:284:7
    at Function.process_params (/home/user/server/node_modules/express/lib/router/index.js:335:12)
    at next (/home/user/server/node_modules/express/lib/router/index.js:275:10)
    at query (/home/user/server/node_modules/express/lib/middleware/query.js:45:5)

有什么方法可以在不命名的情况下下载这些文件?

西蒙·布兰兹多佛

您需要显式允许dotfiles为了使其工作(使用的旧版本Express

app.use(express.static(__dirname +'/ public',{dotfiles:'allow'})));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从服务器下载文件并在 Node.js 中同步重命名?

从Node.js服务器从ServiceBus接收BrokeredMessage

如何在Node.js中下载HTTP Web服务器上托管的文件

无法使用Express和Node Js打开从服务器下载的pdf文件

Node.js-从服务器读取并下载目录中的所有文件,并保存在本地

使用AngularJS从Node.JS服务器下载文件

重定向后,Node.JS将文件下载到服务器

来自Node.js服务器的JSON文件的下载部分

在Android设备上的Google Chrome浏览器上从Node.js服务器下载文件的错误

Node.js Express:仅在服务器启动时加载JSON文件

如何从服务器下载文件,然后将其再次发布到另一个服务器 (Node.js)

无法通过我的前端从我的 node js 服务器下载图像文件(我的后端和前端是解耦的)

引导时自动启动node.js服务器

启动node.js服务器时Ansible挂起

请求到达 node js 服务器时的执行流程

Node.js 服务器未正确提供文件

如何在node.js服务器上的多个客户端之间同步数据库文件而不下载那些已经下载的文件?

Express Node js Webssockets正在从Websocket服务器接收消息,但无法发送消息

通过Object格式从Ajax调用在node.js服务器上接收数据

如何编写Node.js Express服务器以接收curl POST

如何使用Node.js从服务器端的AJAX POST函数接收数据?

AJAX 和 Node JS:在我的服务器中接收空数据

Android客户端未从Node.js服务器接收socket.io消息

通过Node JS服务器中的http请求接收二进制数据

DataInputStream.readUTF没有从Node.js服务器接收任何字符串

将node.js服务器接收的数据打印到控制台

在服务器上但不是HTML文件时的HTML音频文件错误404-Node.js

Node.js HTTP服务器

调用node.js服务器