47

Node.js Express フレームワークを試しており、Rails コンソールと同様に、コンソールを介してモデルと対話できるプラグインを探しています。NodeJSの世界にそのようなものはありますか?

そうでない場合、手動でオブジェクトを追加/削除したり、データのメソッドをテストしたりするなど、Node.js モデルとデータを操作するにはどうすればよいですか?

4

5 に答える 5

67

次の行/コンポーネントを含む js ファイル (つまり、console.js) を作成して、独自の REPL を作成します。

  1. ノードの組み込み repl が必要:var repl = require("repl");
  2. db、信頼できるライブラリなど、すべての重要な変数をロードします。
  3. を使用してreplをロードしますvar replServer = repl.start({});
  4. を使用してキー変数に repl を添付しますreplServer.context.<your_variable_names_here> = <your_variable_names_here>。これにより、変数が REPL (ノードコンソール) で利用可能/使用可能になります。

例: node アプリに次の行がある場合: var db = require('./models/db') 次の行を console.js に追加します。

 var db = require('./models/db');
 replServer.context.db = db;
  1. コマンドでコンソールを実行しますnode console.js

console.js ファイルは次のようになります。

var repl = require("repl");

var epa = require("epa");
var db = require("db");

// connect to database
db.connect(epa.mongo, function(err){
  if (err){ throw err; }

  // open the repl session
  var replServer = repl.start({});

  // attach modules to the repl context
  replServer.context.epa = epa;
  replServer.context.db = db;  
});

次のようにプロンプ​​トをカスタマイズすることもできます。

var replServer = repl.start({
  prompt: "Node Console > ",
});

完全なセットアップと詳細については、http: //derickbailey.com/2014/07/02/build-your-own-app-specific-repl-for-your-nodejs-app/をご覧ください。

オプションの完全なリストについては、プロンプト、色などの repl を渡すことができます: https://nodejs.org/api/repl.html#repl_repl_start_options

この情報を提供してくれたDerick Baileyに感謝します。


アップデート:

GavinBelson は、sequelize ORM (または repl で promise 処理を必要とするもの) で実行するための優れた推奨事項を持っています。

現在、sequelize も実行しており、ノード コンソールに--experimental-repl-awaitフラグを追加しています。

毎回入力するのは大変なので、以下を追加することを強くお勧めします。

"console": "node --experimental-repl-await ./console.js"

scriptsセクションに移動してpackage.json、次を実行できます。

npm run console

すべてを入力する必要はありません。

次に、次のように、エラーを発生させることなく promise を処理できます。

const product = await Product.findOne({ where: { id: 1 });

于 2015-11-25T08:20:01.760 に答える
22

ノードの使用経験はあまりありませんがnode、コマンド ラインに入力してノード コンソールにアクセスできます。その後、モデルを手動で要求していました

于 2013-01-27T20:47:15.717 に答える
6

簡単です:プログラムにREPLを追加します

于 2013-01-28T00:13:35.237 に答える
5

これはあなたの質問に完全には答えないかもしれませんが、明確にするために、node.js は Rails よりもはるかに低レベルであり、Rails のようなツールやデータ モデルを規定していません。フレームワークというよりプラットフォームです。

より Rails に似たエクスペリエンスを探している場合は、Meteorなどの node.js の上に構築された、より「フル機能の」フレームワークを検討することをお勧めします。

于 2013-01-27T17:45:54.373 に答える