问题出在哪里? 我无法以正确的顺序写入文件。
文件“ 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
答案 0 :(得分:1)
因为您正在做return(this);
您正在修改同一对象。不返回新实例,因此修改对象的最后一句话是设置文件名的那句话。