2

Express 用の MVC アーキテクチャをセットアップしようとしています。私が達成しようとしているのは、ASP.NET に近いルーティング メカニズムです。たとえば、次のルートの場合:

/users/detail/1

Express は、users.js という名前のコントローラー ディレクトリの下にあるモジュールを呼び出す必要があります。users.js モジュール内には、detail という名前の関数があります。関数内では、ユーザーの ID を取得するためのリクエスト パラメーターを取得するだけです。

私の考えは、ユーザーを抽出し、単純な require ステートメントを使用して users.js ファイルにマップすることです。しかし、上記の例で「detail」であるルートのアクション部分を抽出するだけで、expressに details() 関数を呼び出すように指示するにはどうすればよいですか。eval() を使用することはできますが、それは安全ではないと聞いています。前もって感謝します。

4

1 に答える 1

2

ブラウザ側のJavaScriptでは、通常、次のことを実行できます

function a () { console.log('called a');
window['a']();    // called a

次のように置き換えることwindowで、ノードで同様のことができます。global

function a () { console.log('called a');
global['a']();    // called a

ただし、この関数を別のファイルから取得する場合は、少し異なります。次のファイルがあると仮定しましょうa_module.js

exports.a = function () { console.log('a called'); }

そして、メインファイルで次のことができます。

var a_mod = require('./a_module.js');
a_mod['a']();      // a called
于 2013-02-17T06:21:19.810 に答える