почему не записывает поверх двух разных файлов? - PullRequest
0 голосов
/ 05 июня 2019

Где проблема?Я не могу записать в файлы в правильном порядке.

Файл "gestorFicheros.js"

// open log file
const fs = require('fs');

module.exports = {

    fichero: null,
    dia_actual: null,
    nombre: null,
    path: null,

    crearFichero: function(path, nombre){
        this.fichero = fs.createWriteStream(path + "/" + nombre, {flags: 'a'});
        this.nombre = nombre;
        this.path = path;

        this.fichero.on('error', function(e) { 
            console.log("Error:" + e);
            process.exit(1);
        });

        return(this);
    },

    escribe: function(datos){
        this.fichero.write(datos + "\r\n");
    }
};

Файл "test.js"

var ficheros = require('./gestorFicheros.js');

var a = ficheros.crearFichero("./registros", "todas.txt", {flags: 'a'});;
var b = ficheros.crearFichero("./registros", "no-repetidas.txt", {flags: 'a'});;

a.escribe("hola");
b.escribe("adios");
a.escribe("hola");

Результаты:

no-repetidas.txt

hola
adios
hola

todas.txt


Ожидаемые результаты:

no-repetidas.txt

adios

todas.txt

hola
hola

1 Ответ

1 голос
/ 05 июня 2019

Потому что вы делаете return(this);

Вы модифицируете тот же объект. Не возвращает новый экземпляр, поэтому последнее предложение, которое изменяет объект, - это то, которое устанавливает имя файла.

...