基于Express中查询参数的if / else响应

时间:2019-10-22 06:48:50

标签: node.js express

我的快递应用程序中包含以下代码:

        ...
        res.status(200);
        if (download === true) {
          res.download("./src/data/file.txt");
          res.end()
        } else {
          res.json({ msg: msges.success });
        }

当查询参数 download = true 与请求一起发送时,文件将按预期下载,但它没有来自该路径的数据,而数据只是来自该路径的 .json 其他声明。如果删除了其他文件,则该文件包含正确的数据。

2 个答案:

答案 0 :(得分:0)

发送queryParam时,它们被视为字符串

这是您的 if语句失败的原因。

所以您应该尝试:-

       if (download === 'true') {
          res.download("./src/data/file.txt");
          res.end()
        } else {
          res.json({ msg: msges.success });
        }

答案 1 :(得分:0)

表达式Query params是字符串。您通过===运算符将字符串与布尔值进行比较,然后始终为false,这意味着您的代码永远不会进入if块。

只需将字符串与字符串进行比较:

...
if (download === "true") { // string `"true"`
...