1
Files don't update in editor after writing?
DuyNguyen27 (0)

I'm using Nodejs, and I'm doing a bit of reading/writing to files using fs.writeFileSync and fs.readFileSync.

Writing a file the first time is fine. Writing it the second time, the file in the editor doesn't update. It contains the old data. However, reading it back in using Nodejs, the contents of the file are as expected.

Is there a way to force the editor to display the file properly?


Here's a snip of what I'm talking about

var fs = require('fs');
function update() {
  var myContent = "This text was written at " + (new Date().toGMTString());
  fs.writeFileSync('helloworld.txt', myContent);

  console.log(fs.readFileSync("helloworld.txt").toString());
}
setInterval(update, 5000);

The code will read and output the correct results every 5 seconds, but the file in the editor won't update. This causes some major problems with data integrity. I'm trying to store an accurate log of events, and that doesn't appear to be possible on repl.it.

https://repl.it/@DuyNguyen27/Test

You are viewing a single comment. View All
Answered by eankeen (528) [earned 5 cycles]
View Answer
1
Pythonier (299)

Well, replit is really slow when it comes to updating files.

1
DuyNguyen27 (0)

@Pythonier It's not that it's slow. It's that it never gets updated at all. If I refresh the repl.it window, the whole program loses the data. It reverts to whatever I last saw when I clicked on the document. It's more apparent with this code, where I print the contents of the file BEFORE writing it.

var fs = require('fs');
function update() {
  console.log("Before: " + fs.readFileSync("helloworld.txt").toString());

  var myContent = "This text was written at " + (new Date().toGMTString());
  fs.writeFileSync('helloworld.txt', myContent);

  console.log("After:  " +fs.readFileSync("helloworld.txt").toString());
}


setInterval(update, 5000);

This is the output I get:

Before: This text was written at Sat, 11 May 2019 16:58:19 GMT
After:  This text was written at Sat, 11 May 2019 17:06:57 GMT
Before: This text was written at Sat, 11 May 2019 17:06:57 GMT
After:  This text was written at Sat, 11 May 2019 17:07:02 GMT

I hit F5 and run it again, and this is the output I get

Before: This text was written at Sat, 11 May 2019 16:58:19 GMT
After:  This text was written at Sat, 11 May 2019 17:08:01 GMT
Before: This text was written at Sat, 11 May 2019 17:08:01 GMT
After:  This text was written at Sat, 11 May 2019 17:08:06 GMT

I lost whatever I wrote onto the file. It's definitely an intermittent problem, and I was able to replicate it with the above output. It's hard to know if my data is safe.

1
java_santiago_j (0)

@DuyNguyen27 I've been having the same exact problem, it's inconsistent , stopping doesn't ensure it will actually be written either. If you have the program read the contents of the file back to you it'll read it back properly, but upon clicking on the written file, it still has the old data.