NodeJS, I am trying to get an input line of integers using "readline", but getting TypeError: Cannot read property 'split' of undefined

Viewed 36

Here is my program. It gives an error TypeError: Cannot read property 'split' of undefined. It should get 4 integers in 1 line and the give the output as one integer. The specifics of the output are commented.

var readline = require('readline');
 
var rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

var entry= [];

rl.on('line', function (data) {    
    entry.push(data); //Want to get 4 integers (later A, B, C, D)
});

rl.on('close', () => {
  var data = entry[0].split(' ');
  if (+data[3]<=+data[1]) { //If D<=B then output A
    process.stdout.write(data[0].toString());
  } else { //Else output by formula "A + (D-B)*C"
    process.stdout.write((data[0]+(data[3]-data[1])*data[2]).toString());
  }
});
1 Answers

This error is happening because for some reason entry[0] = undefined, and undefined is an invalid input for a split function.

Related