Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

249
Vistas
¿Cómo leer la entrada del usuario desde la terminal antes de presionar enter usando nodo y javascript?

¿Cómo leer la entrada del usuario desde la terminal antes de presionar enter usando nodo y javascript?

Creé una aplicación javascript simple que usa process.stdin o readline para obtener la entrada del usuario, pero no quiero que el usuario tenga que enviar su entrada con enter/return. Me gustaría leer la entrada del usuario en keydown/keypress. es posible? ¿Cómo podría lograr esto? ¡Gracias!

Requisitos:

  • javascript, nodo
  • desde la terminal
  • no se requiere que el usuario envíe una cadena con enter/return

Preferir:

  • menos bibliotecas, más vainilla javascript
  • maneja cualquier tecla: letras, números, teclas de flecha, modificadores
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Una manera fácil de hacerlo podría ser con el paquete iohook .

La forma nativa de Node.JS de hacerlo sería así.

 require("readline").emitKeypressEvents(process.stdin); process.stdin.setRawMode(true); process.stdin.on("keypress", (char, evt) => { console.log("=====Key pressed====="); console.log("Char:", JSON.stringify(char), "Evt:", JSON.stringify(evt)); if (char === "h") console.log("Hello World!"); if (char === "q") process.exit(); });

La primera línea, require("readline").emitKeypressEvents(process.stdin) hace que process.stdin emita eventos de pulsación de tecla, ya que normalmente no emite el evento.

El segundo, process.stdin.setRawMode(true) convierte a process.stdin en un dispositivo sin procesar. En un flujo configurado de dispositivo sin procesar, los eventos de pulsación de tecla se emiten por carácter, en lugar de emitirse por pulsación de tecla Intro.

Luego, el detector de eventos de keypress de teclas se agrega a process.stdin para manejar las pulsaciones de teclas.

Nota

Cuando process.stdin se convierte en un dispositivo sin formato, Ctrl+C no emite una señal SIGINT , en otras palabras, Ctrl+C no detendrá el programa. Esto significa que deberá vincular manualmente una clave para salir.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda