Node.js: operazioni essenziali sui file

Node.js fornisce un'ampia gamma di opzioni per operare sui file.

Node.js di Gabriele Romanato

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);
});

Commenti