История изменений
Исправление theNamelessOne, (текущая версия) :
- Читать один и тот же файл в цикле — плохо.
- Документацию к функциям (например, к
JSON.parse
) читать — хорошо.
var fs = require('fs');
var data = function(dataFile, mapFile, done) {
fs.readFile(dataFile, function(err, dataString) {
if(err) return done(err);
var evaluated = eval(dataString+";data");
// transform data for convenience
var data = evaluated.reduce(function (data, item) {
data[item.key] = item.val;
return data;
}, {});
fs.readFile(mapFile, function (err, mapString) {
if (err) return done(err);
var map = JSON.parse(mapString, function (key, value) {
if (value in data) return data[value];
return value;
});
return done(null, map);
});
});
};
data('data.json', 'map.json', function (err, map) {
if (err) throw err;
console.log(map);
});
Исходная версия theNamelessOne, :
- Читать один и тот же файл в цикле — плохо.
- Документацию к функциям (например, к
JSON.parse
читать — хорошо.
var fs = require('fs');
var data = function(dataFile, mapFile, done) {
fs.readFile(dataFile, function(err, dataString) {
if(err) return done(err);
var evaluated = eval(dataString+";data");
// transform data for convenience
var data = evaluated.reduce(function (data, item) {
data[item.key] = item.val;
return data;
}, {});
fs.readFile(mapFile, function (err, mapString) {
if (err) return done(err);
var map = JSON.parse(mapString, function (key, value) {
if (value in data) return data[value];
return value;
});
return done(null, map);
});
});
};
data('data.json', 'map.json', function (err, map) {
if (err) throw err;
console.log(map);
});