Ответ if / else на основе параметра запроса в Express - PullRequest
0 голосов
/ 22 октября 2019

У меня есть этот код в моем экспресс-приложении:

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

Когда параметр запроса download = true отправляется с запросом, файл загружается, как и ожидалось, но у него нет данных от этогопуть, но данные - это просто .json из оператора else. Если еще удалить, файл содержит правильные данные.

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Express Query params - строки. Вы сравниваете строку с логическим значением с помощью оператора ===, тогда оно всегда будет ложным, это означает, что ваш код никогда не доходит до if блока.

Просто сравните строку со строкой:

...
if (download === "true") { // string `"true"`
...
0 голосов
/ 22 октября 2019

Когда отправляются queryParams, они обрабатываются как строка .

. Это причина, по которой не выполняется ваш if оператор .

Поэтому вы должны попробовать: -

       if (download === 'true') {
          res.download("./src/data/file.txt");
          res.end()
        } else {
          res.json({ msg: msges.success });
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...