Node.js: operazioni essenziali sui file

Node.js: operazioni essenziali sui file

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

Torna su