Meteorでアプリケーションを作成したいと思います。私が理解していることから、サブディレクトリにある最初にロードされ、次にアルファベット順にロードされます。私のファイル構造はこんな感じです...
/server
/lib
/client
/lib
game.js -> already starts declaring the function "makeBoard(){}"
/template.js -> where the function "makeBoard()" is called.
したがって、エラー関数「makeBoard()」は存在しないように見えます。これは、呼び出したい場所と同じファイルで宣言した場合にのみ機能します。ファイル「game.js」を「template.js」と同じディレクトリに移動しても発生します。 Meteorのさまざまなファイルにあるリソースを正しく参照するにはどうすればよいですか?
makeBoard = function() { ... }
で関数を定義します。
function foo() { ... }
で定義された関数は、var bar = ...
で定義された変数と同様に、ファイルに対してローカルです。
Avitalが示唆するように、グローバルに定義された変数を使用することは機能しますが、推奨されるコード設計の選択ではありません( ここにリストされているJSの間違い1を参照 )。
代わりに、lib
ディレクトリに次のファイルを作成できます。
_Meteor.myFunctions = {
...
makeBoard : function() { ... },
...
}
_
次に、他のjsファイルでMeteor.myFunctions.makeBoard()
を呼び出すことができます。 Meteorはlib
内のjsファイルが他のディレクトリよりも先にロードされることを保証しているため、これはlib
ディレクトリで実行する必要があります。したがって、関数はすでにロードされています。