traditional servers node how from different commands based are node.js command-prompt read-eval-print-loop node-repl

node.js - commands - how node based web servers are different from traditional web servers



Cómo escribir múltiples líneas de código en Node REPL (3)

Me gustaria evaluar

var foo = "foo"; console.log(foo);

como un bloque, en lugar de evaluar línea por línea

var foo = "foo"; undefined console.log(foo); foo undefined

¿Hay una forma sencilla de mover el indicador a la siguiente línea?


La solución de jhnstn es perfecta, pero en caso de que busque otras alternativas, puede colocar el código dentro de una cadena multilínea y luego eval así:

> let myLongCode = ` ... let a = 1; ... let b = 2; ... console.log(a + b); ... `; > eval(myLongCode) > 3

Por supuesto esto es un hack;)


Nodo v6.4 tiene un modo editor . En el indicador de .editor escriba .editor y puede ingresar múltiples líneas.

ejemplo

$ node > .editor // Entering editor mode (^D to finish, ^C to cancel) const fn = there => `why hello ${there}`; fn(''multiline''); // hit ^D ''why hello multiline'' > // ''block'' gets evaluated and back in single line mode.

Aquí están los documentos en todos los comandos especiales de respuesta https://nodejs.org/api/repl.html#repl_commands_and_special_keys


Puede usar if(1){ para iniciar un bloque que no terminará hasta que ingrese } . Se imprimirá el valor de la última línea del bloque.

> { ... var foo = "foo"; ... console.log(foo); ... } foo undefined

En el modo multilínea, se pierde una gran cantidad de detalles REPL, como el autocompletado y la notificación inmediata de errores de sintaxis. Si se queda atascado en el modo multilínea debido a un error de sintaxis dentro del bloque, use ^C para volver al indicador normal.