0

ファイルを使用してモジュールのリストを保持し、nodejs サーバーで 1 回の呼び出しでこのリストを要求するという問題があります。リスト内のモジュールを特定の方法で使用したい。

modules.js -

Mods = {
  mymodule: require('./mymodule.js')
}

exports.f = function() {
  return Mods;
}

index.js -

f = require('./modules.js').f;

f().mymodule.echo("Hello World");

f() を使用する方法の代わりに、関数に直接呼び出しているモジュールの名前を入れて、次のようなことができるようにします。

f = require('./modules.js').f;

f('mymodule').echo("Hello World");

さまざまな実験を試みましたが、うまくいきません.javascriptでこれを行うことは可能ですか?

4

3 に答える 3

1

もっと言えば…^^

var Mods = {
    mymodule: require('./mymodule.js');
}

module.exports = function( name ) {
  if( !name ) return Mods;
  return Mods[name];
};
于 2012-12-03T14:03:36.383 に答える
1

さて、これを行うと:

var Mods = {
    mymodule: require('./mymodule.js');
}

module.exports = function( name ) {
    return Mods[name];
};

その後、次のことができます。

var f = require( "./modules.js"); //no .f required

f( "mymodule" ).echo( "Hello world");
于 2012-12-03T13:55:24.853 に答える
1

編集:私は自分の答えを説明するように求められました.喜んでそうします. 解決の鍵は、ブラケット記法と呼ばれるものです。この用語は、変数を使用して JavaScript のオブジェクトのプロパティにアクセスする機能を指します。以下のコードでは、プロパティの名前を文字列として含む変数whereを使用して、オブジェクトのプロパティにModsアクセスする方法を確認できます。[name]name

Mods = {
  mymodule: require('./mymodule.js');
}

exports.f = function(name) {
  return Mods[name];
}
于 2012-12-03T13:56:41.417 に答える