【发布时间】:2014-06-20 17:54:16
【问题描述】:
我刚接触 node.js 和编程本身。我试图在另一个程序中调用一个函数,但我从来没有得到结果。我调用的函数工作正常,结果正确,调用函数也工作正常,但我想返回的数组没有返回。该程序运行没有错误(遗憾的是在控制台上没有输出)。我检查了几个教程,但找不到与我正在做的事情不同的地方。 我试着把“return(result);”在函数的末尾(在关闭最后一个“}”之前)但是这样做数组又是空的。 我很欣赏每一个想法。
问候,尼尔斯
1. prog: calling the function:
var input = require('./einlesen.js');
var output = input.einlesen('GZV.csv', ';', 1, 2, function(err, yay)
{
console.log(output);
});
2. prog: the function:
var einlesen = function(datei, trennzeichen, zelle1, zelle2)
{
var result = []; //Ergebnis array beinhaltet start und endknoten
var fs = require('fs'), //filestream einbinden um fs.open etc zu nutzen
data = 'Daten/' + datei;
fs.open(data, 'r', function(err, handledata) //zu prüfende Datendatei einbinden
{
fs.stat(data, function(err,datastats) //dateiinformationen über größe auslesen
{
var datasize = datastats.size,
databuffer = new Buffer(datasize);
var dataarray = [];
fs.read(handledata, databuffer, 0, datasize, 0, function(err, bytes, datacontent) //Datei zum lesen öffnen
{
var datalines = datacontent.toString().split("\n"); //array mit Zeilen der Datei füllen
for (var i=0; i < datalines.length - 1; i += 1) //Zeile für Zeile die Daten bearbeiten
{
dataarray[i] = datalines[i].split(trennzeichen); //Zeile aufsplitten
dataarray [i][zelle1] = dataarray[i][zelle1].trim(); //Leerezeichen entfernen
dataarray [i][zelle1] = dataarray[i][zelle1].trim('\r'); // \r abschneiden
if (zelle2 != 'n')
{
dataarray [i][zelle2] = dataarray[i][zelle2].trim(); //Leerzeichen entfernen
dataarray [i][zelle2] = dataarray[i][zelle2].trim('\r'); // \r abschneiden
}
result[i] = [dataarray[i][zelle1], dataarray[i][zelle2]];
}
fs.close(handledata);
});
});
});
}
exports.einlesen = einlesen;
【问题讨论】:
-
你没有调用任何回调...
标签: arrays node.js function return