Асинхронный экспорт данных базы данных в файл csv

#javascript #node.js #csv #asynchronous #fs

#javascript #node.js #csv #асинхронный #fs

Вопрос:

В настоящее время я пытаюсь записать результаты sql-запроса в файл CSV, используя csv-stringify модуль для NodeJS.

Вот мой код :

 async exportData() {
        try {
            let request = 'SELECT * FROM PROFACE.dbo.EvenementsMachines WHERE idMachine=215';
            let results = await sql.query(request);

            stringify(results, {
                    header: true
            }, function (err, output) {
                    fs.writeFile(__dirname '/results.csv', output, function(err, result) {
                        if (err) {
                            console.log('error : ', err);
                        }
                    });
            })
        } catch (e) {
            console.log(e);
        }
    }

server.app.get("/export", function(req, res) {
    try {
        exportData().then(function(value) {
            res.json("OK");
        });
    } catch (e) {
        console.log(e);
    } 
})

  

Этот фрагмент кода возвращает следующую ошибку.

 CsvError: Invalid argument: got {"header":true} at index 1
    at stringify (C:Usersc.chaulaicDocumentsDevmps-prodnode_modulescsv-stringifylibindex.js:482:13)
    at DAO.exportData (C:Usersc.chaulaicDocumentsDevmps-prodserverDAO.js:219:4)
    at processTicksAndRejections (internal/process/task_queues.js:93:5) {
  code: 'CSV_INVALID_ARGUMENT'
  

Я предполагаю, что есть эта ошибка, потому что она асинхронна, а results переменная не определена, когда я использую stringify() функцию. Но я не знаю, как переписать свой код, чтобы он мог нормально работать.

Комментарии:

1. какой модуль npm вы используете?

2. @arjunkori csv-stringify