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

时间:2017-07-12 12:43:29

标签: 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 = "<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);
});

但是当我点击页面上的按钮时,我得到了

  

错误:ENOENT:没有这样的文件或目录,stat&#39; / images / [object Object]&#39;       在错误(本机)&#34;

并且控制台记录req.query为空。

编辑:returnRandomImagePath()的代码:

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]);
}

1 个答案:

答案 0 :(得分:-1)

尝试使用app.get(&#39; *&#39;)代替app.get(&#39; /&#39;)