Estoy tratando de usar la biblioteca readline dentro de play.js, que es una aplicación iOS en mi iPad.
const rl = require("readline") rl.createInterface({ input: process.stdin, output: process.stdout }); var response rl.question("Enter a number ", function (answer) { response = answer outside(); rl.close(); }); outside = function(){ console.log('The user entered: ', response) } Y sigo recibiendo el error TypeError: rl.question is not a function
Aparentemente, se cambió el nombre del paquete readline npm a linebyline porque ahora es el nombre de un módulo central en el nodo 10. Sugeriría cambiar su importación de esta manera:
const rl = require("linebyline"); Si esto no resuelve el problema, verifique si instaló el paquete correcto. El error parece indicar que rl.question no está undefined .
Editar: Mi error, ahora veo que tenía la intención de usar el módulo principal. Entonces tal vez verifique si la configuración de su nodo funciona correctamente y si la versión es lo suficientemente reciente. (También intente agregar un ; después de la var response ).
Ok, sé que tengo tres meses de retraso, ¡pero esta es la primera vez que respondo con una respuesta que funciona! Pero de todos modos, la razón por la que sigue recibiendo un error es porque esta línea
const rl = require("readline")solo extrae el módulo readline en rl, si desea hacer algo con readline, debe crear una instancia haciendo.
const rlInstance = rl.createInterface({ input: process.stdin, output: process.stdout });y luego llame al método de pregunta desde ese objeto como este
rlInstance.question("Enter a number ", function(answer) { response = answer outside(); rlInstance.close(); });Todavía estoy aprendiendo JS, por lo que podría estar equivocado en mi razonamiento, pero el código funcionará de todos modos :)