Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Express和Node.js下载文件以响应表单_Javascript_Node.js_Http_Download_Stream - Fatal编程技术网

Javascript 如何使用Express和Node.js下载文件以响应表单

Javascript 如何使用Express和Node.js下载文件以响应表单,javascript,node.js,http,download,stream,Javascript,Node.js,Http,Download,Stream,所以我有一大堆文件,我希望用户能够通过提交表单(我想是发送get请求)下载这些文件。有人能告诉我如何更改我的视图、路由和app.js文件以实现此目的吗?是否应该在index.js文件中处理路由(用户可以在其中下载文件)?或者我应该使用app.js文件创建一条全新的路线 编辑:我正在使用multer上传文件 在这一点上,我的代码有些零散: 在app.js中,我们有: app.get('/download', function(req, res, next){ var file = req.pa

所以我有一大堆文件,我希望用户能够通过提交表单(我想是发送get请求)下载这些文件。有人能告诉我如何更改我的视图、路由和app.js文件以实现此目的吗?是否应该在index.js文件中处理路由(用户可以在其中下载文件)?或者我应该使用app.js文件创建一条全新的路线

编辑:我正在使用multer上传文件

在这一点上,我的代码有些零散:

在app.js中,我们有:

app.get('/download', function(req, res, next){
  var file = req.params.file
    , path = __dirname + '/uploads/' + file;

  res.download("upload/a.tiff");
});
h2 Download
form(action="/download", method="get")
  input(type="submit", name="downLoad")
在index.jade中,我们有:

app.get('/download', function(req, res, next){
  var file = req.params.file
    , path = __dirname + '/uploads/' + file;

  res.download("upload/a.tiff");
});
h2 Download
form(action="/download", method="get")
  input(type="submit", name="downLoad")
index.js文件中没有任何相关内容,但有一次我在app.js中使用了index.js文件中列出的函数。这似乎不起作用

现在我只是想下载一个a.tiff文件

这就是错误:

404

Error: Not Found
    at app.use.res.render.message (/Users/brennan/personal/dev/shareBetweenComputers/app.js:39:13)
    at Layer.handle [as handle_request] (/Users/brennan/personal/dev/shareBetweenComputers/node_modules/express/lib/router/layer.js:82:5)
    at trim_prefix (/Users/brennan/personal/dev/shareBetweenComputers/node_modules/express/lib/router/index.js:302:13)
    at /Users/brennan/personal/dev/shareBetweenComputers/node_modules/express/lib/router/index.js:270:7
    at Function.proto.process_params (/Users/brennan/personal/dev/shareBetweenComputers/node_modules/express/lib/router/index.js:321:12)
    at next (/Users/brennan/personal/dev/shareBetweenComputers/node_modules/express/lib/router/index.js:261:10)
    at /Users/brennan/personal/dev/shareBetweenComputers/node_modules/express/lib/router/index.js:603:15
    at next (/Users/brennan/personal/dev/shareBetweenComputers/node_modules/express/lib/router/index.js:246:14)
    at Function.proto.handle (/Users/brennan/personal/dev/shareBetweenComputers/node_modules/express/lib/router/index.js:166:3)
    at router (/Users/brennan/personal/dev/shareBetweenComputers/node_modules/express/lib/router/index.js:35:12)
我需要写一条下载路线吗

Remote Address:127.0.0.1:3000
Request URL:http://localhost:3000/download?downLoad=Submit
Request Method:GET
Status Code:404 Not Found

这里需要一些代码。您现有的路线/视图是什么样子的like@laggingreflex还有什么我应该包括的吗?其余的差不多都是开箱即用的,看起来应该可以用了。您的
app.get('/download'..
函数是否被调用?当您提交请求时,该函数显示了发送/接收请求的内容form@laggingreflex它没有被调用。我收到的是404,请求也在上面。当你转到(从浏览器)时会发生什么
http://localhost:3000/download
?如果你的路线没有被呼叫,那么一定是因为某种原因被跳过了。你能在app.js中发布周围的代码吗?