Poznajemy czym jest symbol na przykładzie skryptów w node.js, które pisaliśmy w lekcjach poprzednich. Do dzieła!
Kod z poprzedniej lekcji:
var fs = require('fs');
const path = require("path");
var fpath = path.join(__dirname, 'files', 'lorem.txt');
function isFile(fname){
if(!fs.existsSync(fpath))
return false;
try {
const stats = fs.statSync(fname);
return stats.isFile();
} catch (err) {
console.error(err);
}
}
function isDir(fname){
if(!fs.existsSync(fpath))
return false;
try {
const stats = fs.statSync(fname);
return stats.isDirectory();
} catch (err) {
console.error(err);
}
}
console.log(isFile(fpath));
//true
console.log(isDir(fpath));
//false
Symbole są łatwiejsze, niż to się wydaje. Oto przykład:
function isFile(fname){
const funcName = 'isFile';
if(!fs.existsSync(fpath))
return false;
try {
const stats = fs.statSync(fname);
return stats[funcName]();
} catch (err) {
console.error(err);
}
}
W isDir tak samo:
function isDir(fname){
const funcName = 'isDirectory';
if(!fs.existsSync(fpath))
return false;
try {
const stats = fs.statSync(fname);
return stats[funcName]();
} catch (err) {
console.error(err);
}
}
Możemy zatem takie coś napisać:
var fs = require('fs');
const path = require("path");
var fpath = path.join(__dirname, 'files', 'lorem.txt');
function isA(fname, funcName){
if(!fs.existsSync(fpath))
return false;
try {
const stats = fs.statSync(fname);
return stats[funcName]();
} catch (err) {
console.error(err);
}
}
console.log(isA(fpath, 'isFile'));
//true
console.log(isA(fpath, 'isDirectory'));
//false
Funkcja wywoływana jest dynamicznie…