Ich habe eine for-Schleife in meinem NodeJS Codeconst Verwendung innerhalb for Schleife, warum dieses Verhalten?
const saveDocument = co.wrap(function *(documentData, user, locale) {
var now = moment();
var creationDateLongString = now.format("YYYYMMDDHHmmss");
var creationDateShortString = now.format("YYYYMMDD");
var outputChildFolder = documentData.code + '_' + creationDateLongString + '_' + documentCounter;
var outputFolder = config.files.incomingDocumentsDir + '/' + outputChildFolder;
++documentCounter;
yield fs.mkdir(outputFolder)
var xmlFileName = documentData.code + "-" + creationDateLongString + ".xml";
var pdfFileName = documentData.code + "-" + creationDateLongString + ".pdf";
const pages = [];
for(var index=0;index < documentData.pages.length; ++index) {
const page = documentData.pages[index];
var data = new Buffer(page, "base64");
var dataEncoding = imageType(data).mime === "image/png" ? "png" : "jpg";
var fileName = "page" + index + "." + dataEncoding;
var targetFilePath = outputFolder + "/" + fileName
yield fs.writeFile(targetFilePath,data);
pages.push(fileName);
}
...
}
Was ich nicht verstehe ist, warum in dem obigen Code page
wird nur einmal vergeben, auf der ersten Iteration und hält diesen gleichen Wert während der anderen Iterationen . Wenn ich also 5 Seiten habe, lande ich 5 mal mit den Daten der ersten Seite in dieser Variable.
Ich führe Knoten 4 ohne spezielle Argumente oder Postprozessor. Einfach npm run ...
, die auf eine node src/main/myApp.js
in meinem package.json
Ich vermisse wahrscheinlich etwas einfach hier, aber ich habe noch nie zuvor gesehen, wenn Client ES6-Code zu tun. Der große Unterschied besteht natürlich darin, dass der clientseitige Code durch Babel + Webpack läuft und der serverseitige Code direkt durch den Knoten läuft.
Kleines Addendum: Wenn Sie sich fragen, warum die "alte Schule" für Syntax und nicht etwas in Richtung pages.forEach(....
, ist es, weil dies bestehenden Code ist, wo ich nur ein paar kleinere Änderungen vorgenommen habe.
Ich bekomme nicht das gleiche Ergebnis. Zeigen Sie mehr von Ihrem Code bitte. (auch ... 'var' ->' let') –
Ich weiß über die var -> lass Sachen auch. Daher meine Bemerkung im letzten Absatz. Ich wollte die gesamte Datei nicht umgestalten. –