Скачать файл CSV на стороне клиента - PullRequest
0 голосов
/ 31 января 2020

Я написал API для экспорта Пользовательской коллекции в CSV, из MONGODB . API вызывается по нажатию кнопки и экспортирует данные в CSV ... теперь проблема в том, что когда этот API вызывается, он генерирует ФАЙЛ РЕЗУЛЬТАТОВ В МОЕМ ПРОЕКТЕ , я хочу, чтобы файл результатов получал Загрузка на стороне клиента означает, что когда пользователь нажимает кнопку «ЭКСПОРТ», он показывает параметр СОХРАНИТЬ КАК, ПОЛЬЗОВАТЕЛЬ выбирает ПАПКУ, ИМЯ и т. Д. c, а затем файл загружается на КЛИЕНТСКИЙ КОМПЬЮТЕР ... любая идея, как чтобы добиться этого ... Я, М, используя NODE JS, MONGODB и JSON2CSV модуль для преобразования данных ... ниже мой код

app.get('/USER/exporttocsv', function (req, res, next) {
    USER.find().select('-__v').lean().exec({}, function (err, products) {
        const json2csvParser = new Json2csvParser({ header: true });
        const csvData = json2csvParser.parse(products);
        fs.writeFile("bezkoder_mongodb_fs.csv", csvData, function (error) {
            if (error) throw error;
            console.log("Write to bezkoder_mongodb_fs.csv successfully!");
        });
    });
})

Ответы [ 2 ]

0 голосов
/ 31 января 2020

Добавьте метод response.download () в ваш код. Это позволит пользователю загрузить файл на стороне клиента:

res.download('path/to/file-to-download');
0 голосов
/ 31 января 2020

Вы можете добавить тип содержимого в ответ и установить имя файла CSV, как показано ниже.

router.get('/csv', (req, res) => {
  res.setHeader('Content-Type', 'text/csv');
  res.setHeader("Content-Disposition", 'attachment; filename=ireshan.csv');
  res.send("Sally Whittaker,2018,McCarren House,312,3.75\r\nSally Whittaker,2018,McCarren House,312,3.75");
});

...