3

私はNodeを初めて使用し、C#のバックグラウンドから来て、Nodeで理解しようとしている主なものの1つは依存性注入です。私はwire.jsにその機能があることを理解しており、そこにあるすべてのものを読み、Htmlの「HelloWorld」の例もダウンロードしました。しかし、それでも正しく動作させることができません。

これが私がそれを機能させるためにしたことです:

  1. hello-wired.jsファイルとhello-wired-spec.jsファイルをNodeプロジェクトにプルしました。
  2. サンプルアプリの/js/wireからNodeアプリの/node-modules/wireにwireフォルダーをプルしました。
  3. Htmlノードがないため、コンストラクターのhello-world.jsのコード行を削除し、コンストラクターをパラメーターなしにしました。次に、InnerHtmlがないため、sayHelloの行をconsole.log()を使用するように置き換えました。
  4. テストアクションを次のように作成しました


app.get('/testwired', function (req, res) {
    require('wire!hello-wired-spec', function (spec) {
        console.log(spec);
        res.send(spec.sayHello("this is a test"));
    });
});


私が得ているエラーは、モジュールwire!hello-wired-specが見つからないことです。これは、仕様を取得する場所を知るようにwire.jsを構成していないことを意味すると思いますが、その方法がわかりません。また、これにコールバックを使用することになっているのかどうかもわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

8

構文「wire!hello-wired-spec」はAMDローダーに固有であり(AMDプラグインとしてwireを使用します)、AMDはNodeのrequireによって理解されません。したがって、ノードでは、wireをプログラムで使用し、他のlibと同じようにrequire()します。それ以外は、基本的に同じように機能します。ワイヤースペックモジュールをフィードすると、今のところワイヤーで接続すると解決するpromiseが返されます。

これは、ノード用に作成された最も単純な「ハローワイヤー」です。main.js require()sワイヤを使用して、ワイヤリング仕様(spec.js内)をそれにフィードします。wire()は、完全に配線されたコンテキストで解決するPromiseを返します。今のところワイヤースペックにはあまり興味深いものはありませんが、それがあなたの出番です:)

うまくいけば、ノードでワイヤーを使用して稼働させるのに十分ですが、他に質問がある場合は、 cujojsgoogleグループでフォローアップしてください!

于 2012-08-08T21:14:22.047 に答える