Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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.js有一个启动下载的按钮_Javascript_Node.js_Express - Fatal编程技术网

Javascript Express.js有一个启动下载的按钮

Javascript Express.js有一个启动下载的按钮,javascript,node.js,express,Javascript,Node.js,Express,我在玩express,但在让html表单提交查询时遇到了麻烦 我有这段代码,它应该提供一个随机图像和一个下载它的按钮 app.get('/download', function(req, res, next){ src = req.query.src; console.log(req.query); res.download('/images/' + src); }); app.get('/', function(req, res, next){ res.body

我在玩express,但在让html表单提交查询时遇到了麻烦

我有这段代码,它应该提供一个随机图像和一个下载它的按钮

app.get('/download', function(req, res, next){
    src = req.query.src;
    console.log(req.query);
    res.download('/images/' + src);
});
app.get('/', function(req, res, next){
    res.body = "<h1>Random art: </h1><br />";
    res.body = res.body + "<img src='";
    image = returnRandomImagePath();
    res.body = res.body + image;
    res.body = res.body + "' height = '300' width = '300' />";
    res.body = res.body + "<form action = '/download?src=" + image + "' method = 'GET'>";
    res.body = res.body + "<input type = 'submit' value = 'Download' />";
    res.body = res.body + "</form>";
    res.body = res.body + "<br />";
    res.send(res.body);
});

尝试使用app.get(“*”)而不是app.get(“/”)

并请使用templatesreturnRandomImagePath()只返回一个带有图像文件名的字符串,如image1.jpg。我想通过查询发送此消息,以在/download中间件中生成文件名。您可以记录
src
?另外,您能否为我们提供
returnRandomImagePath
code?为
returnRandomImagePath()
添加了代码。src日志为
undefined
,req.query日志为
{}
。作为旁注,
returnRandomImagePath
可以这样分解:
返回图像[Math.floor(Math.random()*images.length)]min
是0,而
max
等于
images.length-1-0+1
,所以基本上
images.length
表单
中的url是否在您的浏览器中格式良好?我认为这与问题无关,因为OP可以访问他的页面。
const images = ["image1.jpg",
                "image2.jpg",
                "image3.jpg",
                "image4.jpg",
                "image5.jpg",
                "image6.jpg",
                "image7.jpg",
                "image8.jpg",
                "image9.jpg"];

function returnRandomImagePath() {
    min = Math.ceil(0);
    max = Math.floor(images.length-1);
    number = Math.floor(Math.random() * (max-min+1)) + min;
    return(images[number]);
}