0

I am trying to solve an algorithm of generating random numbers base on a file size of 745kb. when it gets to this size it stops generating the random number. I have come with an algorithm which generates an array of random numbers write into a JSON file but the problem I have is that I can't read from the file to display on my page.

below is what I have done to the point of where I can't read from the JSON.

repl.it

const fs = require('fs');

function generate(n) {
  var add = 1, max = 3;  

  if (n > max) {
    return generate(max);
  }

  max = Math.pow(10, n + add);
  var min = max / 10; // Math.pow(10, n) basically
  var number = Math.floor(Math.random() * (max - min + 1)) + min;

  return ("" + number).substring(add);

}

function fullNumber() {
  var first = generate(3);
  var second = generate(3);
  var third = generate(3);
  return `0${first}${second}${third}`
}

function generatePhone(number) {
  var newArray = [];
  for (var i = 0; i < number; i++) {
    newArray.push(fullNumber())
  }
  fs.writeFileSync('phone.json', JSON.stringify(newArray), (err) => {
    if (err) throw err;
  });

  return newArray;
}

function readFromFile() {
   fs.readFile('phone.json', (err, data) => {
    if (err) throw err;
    let phone = JSON.parse(data);
    return phone;
  });
}

readFromFile();

returning the phone gives me an undefined. I would like to display the phone to my browser and also be able to stop the random generator when the phone gets to the file size of 745kb.

devIT
  • 239
  • 1
  • 3
  • 9

0 Answers0