77 votes

exécuter un code puis passer en nœud interactif

Existe-t-il un moyen d'exécuter du code (dans un fichier ou à partir d'une chaîne, peu importe) avant de passer en mode interactif dans node.js ?

Par exemple, si je crée un script __preamble__.js qui contient :

console.log("preamble executed! poor guy!");

et un utilisateur tape node __preamble__.js ils obtiennent ce résultat :

preamble executed! poor guy!
> [interactive mode]

109voto

slacktracer Points 1417

Très vieille question mais...

Je cherchais quelque chose de similaire, je crois, et j'ai trouvé ceci. Vous pouvez ouvrir le REPL (en tapant node sur votre terminal) et ensuite charger un fichier. Comme ceci : .load ./script.js . Appuyez sur entrée et le contenu du fichier sera exécuté. Maintenant tout ce qui a été créé (objet, variable, fonction) dans votre script sera disponible.

Par exemple :

// script.js
var y = {
    name: 'obj',
    status: true
};

var x = setInterval(function () {
    console.log('As time goes by...');
}, 5000);

Sur le REPL :

//REPL
.load ./script.js

Maintenant, vous tapez sur le REPL et interagissez avec le "code vivant". Vous pouvez console.log(y) ou clearInterval(x) ;

Ce sera un peu bizarre, car "As time goes by..." apparaîtra toutes les cinq secondes environ. Mais ça va marcher !

29voto

sarnold Points 62720

Vous pouvez commencer un nouveau repl dans votre logiciel Node assez facilement :

var repl = require("repl");
var r = repl.start("node> ");
r.context.pause = pauseHTTP;
r.context.resume = resumeHTTP;

Depuis le REPL, vous pouvez alors appeler pause() ou resume() et exécuter les fonctions pauseHTTP() et resumeHTTP() directement. Il suffit d'assigner ce que vous voulez exposer à la fonction context membre.

25voto

gnerkus Points 7266

Cela peut être réalisé avec le version actuelle de NodeJS ( 5.9.1 ) :

$ node -i -e "console.log('A message')"

Le site -e évalue la chaîne de caractères et l'indicateur -i lance le mode interactif.

Vous pouvez en savoir plus dans le document de référence demande de retrait

11voto

Doh Simpson Points 181

node -r vous permet d'exiger un module au démarrage de REPL. NODE_PATH définit le chemin de recherche du module. Vous pouvez donc exécuter quelque chose comme ceci sur votre ligne de commande :

NODE_PATH=. node -r myscript.js

Cela devrait vous mettre dans un REPL avec votre script chargé.

7voto

Daniel Points 1032

J'ai récemment lancé un projet visant à créer un shell interactif avancé pour Node et les langages associés comme CoffeeScript. L'une des fonctionnalités est le chargement d'un fichier ou d'une chaîne dans le contexte de l'interpréteur au démarrage qui prend en compte le langage chargé.

http://danielgtaylor.github.com/nesh/

Exemples :

# Load a string (Javascript)
nesh -e 'var hello = function (name) { return "Hello, " + name; };'

# Load a string (CoffeeScript)
nesh -c -e 'hello = (name) -> "Hello, #{name}"'

# Load a file (Javascript)
nesh -e hello.js

# Load a file (CoffeeScript)
nesh -c -e hello.coffee

Ensuite, dans l'interpréteur, vous pouvez accéder au hello fonction.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X