3

Rails のようなフレームワークの楽しみの 1 つは、コマンド ラインでモデルを操作できることです。私は node.js に非常に慣れていないので、アプリケーション コードのチャンクを REPL に貼り付けて、オブジェクトを操作していることに気付くことがよくあります。それは汚い。

nodeより経験豊富なノード開発者がプロ​​ンプト内からアプリ固有のものにアクセスするために使用する魔法の弾丸はありますか? 解決策は、アプリ全体またはアプリの一部をモジュールにパッケージ化してrequire()d にすることでしょうか? 私はまだ一列に並んだ土地に住んでいるので、すべてを引き出すことは、避けられないことですが、少し気が遠くなります.

役立つヒントをお寄せいただき、ありがとうございます。

4

3 に答える 3

1

ワンビッグオールファイルの土地は、実際にあなたがやりたいことをするのに適した場所です。Nodejs はrequire、コード自体で REPL にすることもできます。これにより、コピーと貼り付けを節約できます。

これは私のプロジェクトの簡単な例です。ファイルの先頭付近で、次のようなことを行います。

function _cb() {
  console.log(arguments)
}

var repl = require("repl");
var context = repl.start("$ ").context;
context.cb = _cb;

コード全体でコンテキストに追加するだけです。_cb は、それを必要とする関数呼び出しで遊ぶためのダミーのコールバックです (そして、それらが何を返すかを確認します)。

于 2012-09-17T17:43:58.613 に答える
1

REPL API がかなり変更されたようですが、このコードは私にとってはうまくいきます:

  var replServer = repl.start({
    prompt: "node > ",
    input: process.stdin,
    output: process.stdout,
    useGlobal: true
  });
  replServer.on('exit', function() {
    console.log("REPL DONE");
  });
于 2014-02-05T17:02:52.133 に答える
0

この回答を見ることもできますhttps://stackoverflow.com/a/27536499/1936097。ファイルがノードから直接実行され、宣言されたすべてのメソッドと変数がコンテキストに自動的に追加される場合、このコードは自動的に REPL をロードします。

于 2014-12-18T12:25:53.947 に答える