ExpressJS res.download () на бэкэнде + выборка во фронтенде - PullRequest
0 голосов
/ 28 мая 2020

Извините, если это вопрос новичка, но я не могу заставить его работать ...

У меня есть серверная часть, которая использует NodeJS & ExpressJs и доставляет некоторые stati c материал, созданный с использованием VueJS.

Я хочу разрешить пользователям загружать файлы, поэтому я пытаюсь реализовать его.

На бэкэнде вот код

    app.get('/download', function (req, res, next) {
    let queryparams = req.query;
    if (queryparams.filename) {
        try {
            res.download(queryparams.filename); 
        } catch (error) {
            console.log('Unable to read ' + queryparams.filename + ' file. Please check');
            res.write('Unable to read ' + queryparams.filename + ' file. Please check');
            res.status(501);

        }
        res.end();
    } else {
        next();
    }
});

Во внешнем интерфейсе я пытался использовать этот пакет download js npm, но он не работает и даже больше, мне это нужно?

fetch(`https://${servername}/download?filename=` + data.filename)
    .then((response) => response.blob())
    .then((blob) => downloadjs(blob, data.filename));

Любая помощь будет оценена

Боб

1 Ответ

0 голосов
/ 28 мая 2020

Вот как я реализовал загрузку в своем приложении express. Когда пользователь посещает этот конкретный URL-адрес, он автоматически загружает файл. Это фрагмент кода проекта, над которым я работал. Надеюсь, это поможет

router.get('/frontliners/file.csv', function (req, res) {
    controller.airtableFrontliners((output) => {
        res.status(200)
        const file = `${__dirname}/data.csv`; // Get the path of the file
        res.download(file); 
    })
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...