I would just like something simple to read text from a keyboard and store it into a variable. So for:
var color = 'blue'
I would like the user to provide input for the color from the keyboard. Thank you!
I would just like something simple to read text from a keyboard and store it into a variable. So for:
var color = 'blue'
I would like the user to provide input for the color from the keyboard. Thank you!
I would suggest the readline-sync module as well if you don't require something asynchronous.
# npm install readline-sync
const readline = require('readline-sync');
let name = readline.question("What is your name?");
console.log("Hi " + name + ", nice to meet you.");
Node has a built in API for this...
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('Please enter a color? ', (value) => {
let color = value
console.log(`You entered ${color}`);
rl.close();
});
There are three solution for it on NodeJS platform
Like: ( https://nodejs.org/api/readline.html )
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('What do you think of Node.js? ', (answer) => {
// TODO: Log the answer in a database
console.log(`Thank you for your valuable feedback: ${answer}`);
rl.close();
});
var readlineSync = require('readline-sync');
// Wait for user's response.
var userName = readlineSync.question('May I have your name? ');
console.log('Hi ' + userName + '!');
For taking input as argv:
// print process.argv
process.argv.forEach((val, index) =>
{
console.log(`${index}: ${val}`);
});
You can use the module 'readline' for this: http://nodejs.org/api/readline.html - the first example in the manual demonstrates how to do what you asked for.
You can use stdio for this. It is as simple as follows:
import { ask } from 'stdio';
const color = await ask('What is your keyboard color?');
This module includes retries if you decide to accept only some predefined answers:
import { ask } from 'stdio';
const color = await ask('What is your keyboard color?', { options: ['red', 'blue', 'orange'], maxRetries: 3 });
Take a look at stdio, it includes other features that may be useful for you (like command-line arguments parsing, standard input reading at once or by lines...).
We can also use NodeJS core standard input functionality for the same.
ctrl+D
for end standard input data reading.
process.stdin.resume();
process.stdin.setEncoding("utf-8");
var input_data = "";
process.stdin.on("data", function(input) {
input_data += input; // Reading input from STDIN
if (input === "exit\n") {
process.exit();
}
});
process.stdin.on("end", function() {
main(input_data);
});
function main(input) {
process.stdout.write(input);
}
You can use this templete
process.stdin.resume();
// A Readable Stream that points to a standard input stream (stdin)
process.stdin.setEncoding("utf-8"); // so that the input doesn't transform
let inputString1 = "";
let inputString = "";
let currentLine = 0;
process.stdin.on("data", function (userInput) {
inputString1 = inputString1 + userInput; // taking the input string
});
process.stdin.on("end", function (x) {
inputString1.trim();
inputString1 = inputString1.split("\n"); // end line
for (let i = 0; i < inputString1.length; i++) {
inputString += inputString1[i].trim() + " ";
}
inputString.trim();
inputString = inputString.split(" ");
main();
});
function readline() {
let result = inputString[currentLine++];
return parseInt(result); // change when you want to use strings, according to the problem
}
function main() {
let n = readline();
let arr = [];
for (let i = 0; i < n; i++) {
arr[i] = readline();
}
}
If I understood your need, that should do it:
html:
<input id="userInput" onChange="setValue()" onBlur="setValue()">
javascript:
function setValue(){
color=document.getElementById("userInput").value;
//do something with color
}
if you don't need to do something everytime the input changes, you can just get the input whenever you want to do something with 'color':
html:
<input id="userInput">
javascript:
color=document.getElementById("userInput").value;