Как обрабатывать JSON ответ и файл как в window.open? - PullRequest
0 голосов
/ 04 июня 2018

Я делаю загрузку файла с помощью window.open (из jsx-файла React):

function downloadFile(documentName, event) {
    var response = window.open('/downloadViewDocument/'+ documentName, "_self");
 }

А из узла / экспресса я возвращаю файл примерно так:

 var document = __dirname + "/../../attachments/" + req.params.documentName.trim();
    fs.stat(document, function(err, stat) {
        if(err == null) {
            console.log('File exists');
            res.setHeader("Content-Disposition","attachment; filename=\"" + req.params.documentName.trim() + "\"");
            var filestream = fs.createReadStream(document);
            filestream.pipe(res);
        } else if(err.code == 'ENOENT') {
            // file does not exist
            **res.json({success: true, msg: 'File Does Not Exist!'});**
        } else {
            **res.json({success: true, msg: 'Error Occured, Please Try Again!'});**
        }
    });

Обратите внимание, что в приведенном выше коде в случае ошибки я возвращаю объект JSON. Если файл найден, он загружается. Но в случае, если файл не найден, я хочу прочитать из msg и показать правильное сообщение об ошибке пользователю. Я не вижу никакой опции в window.open, чтобы прочитать ответ обратно.Есть ли другой способ?

1 Ответ

0 голосов
/ 04 июня 2018

Самый простой способ - просто напечатать сообщение об ошибке с помощью window.alert().

Для этого есть множество других решений, но если я правильно понимаю ваш вопрос, вы просто захотите напечатать сообщение об ошибке вклиент в легкий путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...