'database data to CSV nodejs

The below Code show how to download users data in CSV file. the issue is the output of the data inside the CSV is not organized.

app.js file

  app.get('/export-csv',function(req,res){
      db.query("SELECT * FROM users", function (err, users, fields) {
        if (err) throw err;
        console.log("users:");
    
        const jsonUsers = JSON.parse(JSON.stringify(users));
        //console.log(jsonUsers);
     
        // -> Convert JSON to CSV data
        const csvFields = ['id', 'name', 'shopCode','region'];
        const json2csvParser = new Json2csvParser({ csvFields });
        const csv = json2csvParser.parse(jsonUsers);
     
        //console.log(users);
     
         res.setHeader("Content-Type", "text/csv");
         res.setHeader("Content-Disposition", "attachment; filename=users.csv");
     
         res.status(200).end(csv);
      });
    });

enter image description here

what am I missing, how to make the data organized inside CSV ?



Solution 1:[1]

Try Instead of

        const csvFields = ['id', 'name', 'shopCode','region'];
        const json2csvParser = new Json2csvParser({ csvFields });
        const csv = json2csvParser.parse(jsonUsers);

To

        var fields = ['id', 'name', 'shopCode','region'];
        var fieldNames = ['Id', 'Name', 'ShopCode','Region'];
        var csv = json2csv({ data: docs, fields: fields, fieldNames: fieldNames });

and install json2csv npm. Hope it will work.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Deep