Нодейс. Получение [объекта, объекта] при fs.writeFileSync - PullRequest
0 голосов
/ 04 октября 2019

Я читаю CSV-файл, затем пишу другой в нужном мне формате. console.log показывает нужные мне данные, но файл, который я создаю, показывает [объект, объект] для каждой строки.

Я не уверен, почему console.log показывает правильные данные, а файл - нет. Я прочитал документацию по Node, но не могу понять это. Любая информация, которую вы можете предоставить, приветствуется.

это то, что показывает console.log

var fs = require("fs");
var parse = require('csv-parse');

//read file
var inputFile = 'EXAMPLE_UPSdailyShipment.csv';

fs.createReadStream('EXAMPLE_UPSdailyShipment.csv', "utf8", function read(err, data) {
  if (err) {
    throw err;
  }
  content = data;
});

var arr = [];

//data for new file
var parser = parse({
  delimiter: ","
}, function(err, data) {

  data.forEach(function(column) {
    // create line object, data from parsed fields, PackageReference1 is order#
    var line = {
      "BuyerCompanyName": " ",
      "OrderNumber": column[8],
      "ShipperName": "UPS",
      "TrackingNumber": column[9],
      "DateShipped": column[0],
      "ShipmentCost": column[2],
    };
    arr.push(line);
  });
  console.log(arr);
  fs.writeFileSync("newtemp3.csv", arr, 'utf8');
  console.log("file read and new file created")
});

fs.createReadStream(inputFile).pipe(parser);

1 Ответ

0 голосов
/ 04 октября 2019

Я думаю, вам просто нужно сначала упорядочить данные:

fs.writeFileSync("newtemp3.csv", JSON.stringify(arr), 'utf8');

Надеюсь, это решит вашу проблему.

...