Ich schreibe eine Funktion, die die Ergebnisse eines Web-Scrape aufnimmt, das ich auf einer Tshirt-Website durchgeführt habe.Warum wird meine CSV-Datei nicht ohne Daten geschrieben?
Jedes T-Shirt, wurde als ein Objekt gespeichert, mit einem Titel, Preis, ImgUrl, URL und Zeit. Jedes dieser Objekte ist in einem Array gespeichert und enthält alle T-Shirts.
In dieser Funktion konvertiere ich zuerst das Array in eine JSON-Zeichenfolge. Ich trage das Protokoll ein, nur um zu überprüfen, ob dies korrekt ausgeführt wird.
Ich dann den Ordner erstellen, wenn es nicht bereits Daten genannt existiert.
Ich listet die gewünschten Felder für die CSV.
Ich schreibe dann die Datei, indem ich meine Daten (JSON-String), den Dateipfad, übergebe und ihn zum Überschreiben einstelle.
Jetzt, wenn ich die Funktion aufrufen, tut es alles, außer, wenn ich die CSV-Datei öffne, werden die Spalten korrekt betitelt, aber die Tabelle ist komplett leer.
Irgendwelche Ideen? Ich würde Ihre Eingabe sehr schätzen, danke!
-Code ist unten:
var json2csv = require('json2csv');
var fs = require('fs');
function convertJson2Csv(){
//The scraper should generate a folder called `data` if it doesn’t exist.
var dir ='./data';
if(!fs.existsSync(dir)){
fs.mkdirSync(dir);
};
var tshirtArray = [ {
Title: 'Mike the Frog Shirt, Orange',
Price: '$25',
ImageURL: 'img/shirts/shirt-108.jpg',
URL: 'http://shirts4mike.com/shirt.php?id=105',
Date: 'September 23rd 2016, 12:28:49 am'
},{
Title: 'Logo Shirt, Teal',
Price: '$20',
ImageURL: 'img/shirts/shirt-107.jpg',
URL: 'http://shirts4mike.com/shirt.php?id=105',
Date: 'September 23rd 2016, 12:28:49 am'
},{
Title: 'Logo Shirt, Gray',
Price: '$20',
ImageURL: 'img/shirts/shirt-106.jpg',
URL: 'http://shirts4mike.com/shirt.php?id=105',
Date: 'September 23rd 2016, 12:28:49 am'
},{
Title: 'Mike the Frog Shirt, Yellow',
Price: '$25',
ImageURL: 'img/shirts/shirt-105.jpg',
URL: 'http://shirts4mike.com/shirt.php?id=105',
Date: 'September 23rd 2016, 12:28:50 am'
}];
var tshirtJson = JSON.stringify(tshirtArray);
var fields = ['Title', 'Price', 'ImageURL', 'URL', 'Date'];
var csv = json2csv({ data: tshirtJson, fields: fields });
console.log(csv);
fs.writeFile('./data/file.csv', csv, {overwrite: true}, function(err) {
if (err) throw err;
console.log('file saved');
});
};
convertJson2Csv();
Hey ich den Code in der Frage aktualisiert, immer noch nicht funktioniert aus irgendeinem Grund? – bloppit