Node.js fornisce un'ampia gamma di opzioni per operare sui file.
Possiamo creare la seguente classe di utility:
const path = require('path');
const fs = require('fs');
const ABSPATH = path.dirname(process.mainModule.filename);
class Files {
static read(path, encoding) {
return new Promise(function(resolve, reject) {
let readStream = fs.createReadStream(ABSPATH + path, encoding);
let data = '';
readStream.on('data', function(chunk) {
data += chunk;
}).on('end', function() {
resolve(data);
}).on('error', function(err) {
reject(err);
});
});
}
static create(path, contents) {
return new Promise(function(resolve, reject) {
fs.writeFile(ABSPATH + path, contents, function(err, data) {
if(!err) {
resolve(data);
} else {
reject(data);
}
});
});
}
static remove(path) {
return new Promise(function(resolve, reject) {
fs.unlink(ABSPATH + path, function(err) {
if(!err) {
resolve(path);
} else {
reject(err);
}
});
});
}
}
module.exports = Files;
Esempio d'uso:
const Files = require('./lib/Files');
Files.create('/files/test.txt', 'Test').then(function(data) {
console.log(data);
}).catch(function(err) {
console.log(err);
});