let fs = require('fs');
class Logger{
constructor(fname){
this.fname = fname;
fs.open(fname, "a", function(err, file_handle) {
if(!err)
this.file_handle = file_handle;
else
console.error('Cant open file "'+fname+'".');
});
}
log(level, data){
const writen_data = level + ":" + data;
fs.write(this.file_handle, writen_data, null, 'ascii', function(err, written) {
if (err) {
console.error('Cant write data: "' + data + '" to file: ' + this.fname);
} else {
console.log(writen_data);
}
});
}
}
log = new Logger('log.txt');
Вываливается с ошибкой:
this.file_handle = file_handle;
^
TypeError: Cannot set property 'file_handle' of null
Трассировка говорит о том, что this == null.
Как переделать этот код чтобы все работало?