我只想简单地从键盘上读取文本并将其存储到变量中。所以:
var color = 'blue'
我希望用户通过键盘提供颜色输入。谢谢!
答案 0 :(得分:8)
如果您不需要异步,我建议使用readline-sync模块。
# 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.");
答案 1 :(得分:5)
Node有一个内置的API ...
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();
});
答案 2 :(得分:2)
在NodeJS平台上有三种解决方案
喜欢:(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();
});
对于同步用例需要,使用 NPM包: readline-sync 赞:(https://www.npmjs.com/package/readline-sync)
var readlineSync = require(' readline-sync');
//等待用户的回复。 var userName = readlineSync.question('我可以说出你的名字吗?'); console.log('嗨' +用户名+'!');
对于所有一般用例需求,请使用** NPM包:global package:process:** Like:(https://nodejs.org/api/process.html)
将输入作为argv:
// print process.argv
process.argv.forEach((val, index) =>
{
console.log(`${index}: ${val}`);
});
答案 3 :(得分:1)
您可以使用模块“readline”:http://nodejs.org/api/readline.html - 手册中的第一个示例演示了如何执行您要求的操作。
答案 4 :(得分:1)
您可以使用stdio。它很简单如下:
var stdio = require('stdio');
stdio.question('What is your keyboard color?', function (err, color) {
// Do whatever you want with "color"
});
如果您决定只接受一些预定义的答案,则此模块包括重试:
var stdio = require('stdio');
stdio.question('What is your keyboard color?', ['red', 'blue', 'orange'], function (err, color) {
// Do whatever you want with "color"
});
看一下stdio,它包含可能对您有用的其他功能(例如命令行参数解析,标准输入读取一次或按行...)。我是stdio
创作者,我刚刚发布了0.2.0版本。 : - )
答案 5 :(得分:0)
我们也可以使用NodeJS核心标准输入功能。
ctrl+D
用于读取最终标准输入数据。
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);
}
答案 6 :(得分:-1)
如果我了解你的需要,那应该这样做:
HTML:
<input id="userInput" onChange="setValue()" onBlur="setValue()">
的javascript:
function setValue(){
color=document.getElementById("userInput").value;
//do something with color
}
如果您不需要在每次输入更改时都执行某些操作,只要您想要使用'color'执行某些操作,就可以获得输入:
HTML:
<input id="userInput">
的javascript:
color=document.getElementById("userInput").value;