Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Simple node.js readline on the console

I'd like to teach students how to program using JavaScript. I don't want to introduce new students to call-backs or any other complex program structure. Looking at Node.js the readline used for standard input uses a call-back. For simple input data, then do a calculation, I'd like a simple equivalent to an input like Python or other similar languages have:

width = input("Width? ")
height = input("Height? ")
area = width * height
print("Area is",area)

Is there some way to do this with JavaScript?

like image 475
Paul Vincent Craven Avatar asked Mar 16 '14 22:03

Paul Vincent Craven


2 Answers

The module readline-sync, (source can be found here, npm page here) will do what you want, it looks like.

If you'd prefer to work at a lower level, it looks like it works by passing the stdin file descriptor (stdin.fd) to the synchronous fs methods. For example:

fs.readSync(stdin.fd, buffer, 0, BUF_SIZE)
like image 88
Aaron Dufour Avatar answered Nov 17 '22 10:11

Aaron Dufour


There is sget as well, a simpler and bit saner module I wrote that accomplishes what the OP is asking for.

var sget = require('./sget');

var width = sget('Width?'),
    height = sget('Height?'),
    area = width * height;

console.log('Area is', area);
like image 29
Jorge Bucaran Avatar answered Nov 17 '22 11:11

Jorge Bucaran