1

アプリケーション ルートからモジュールを要求する必要がある NPM パッケージを開発しています。これは、ユーザーによってアプリケーション ルートに配置されるプロパティ モジュールを必要とするパッケージと考えてください。

アプリケーションのルートへのパスを取得するにはどうすればよいですか?

アップデート:

私がやろうとしていることを要約すると、express を使用すると、次のようなことができます。

app.use(express.router(myNPMModule.router));

ルーター機能がappパラメータとして取得されます。アイデアは、ユーザーが別のファイルでルートを指定できるようにすることです。コントローラーを/controllersフォルダーに配置するなどの特定の規則に従うだけで、モジュールはパスを動的に解析し、正しいメソッドを呼び出すことができます正しいモジュール。すでに機能していますが、NPM でパッケージ化すると、アプリのパスにアクセスできなくなるため、コントローラー モジュールのメソッドを動的に呼び出すことができないことに気付きました。

4

3 に答える 3

3

ユーザーに変数を設定する関数を呼び出させます。

  myModule.setProps(json)
  OR
  myModule = new MyModule(json)

次に、ユーザーはルート構成を要求し、それを使用してモジュールを初期化できます。

編集された質問に応じて更新します。

Expressでは、次のようなルートを定義できます。

var routes = require('./routes')
app.get('/info', routes.info);

//Routes Module
exports.info = function(req, res) {
  res.render('info', {title: 'Express'})
};

これがまさにあなたがやろうとしていることだと思います。そうじゃない?

アップデート2:

__dirnameを使用して、現在実行中のスクリプトが存在するディレクトリを見つけることができます。

console.log(__dirname);
于 2011-11-14T10:08:23.150 に答える
1

同じ質問があります。

そして、私はこの環境変数のヘルプしか見つけることができません:

process.env.PWD

常に、実行中のアプリケーション パスのルートを指します。

于 2012-10-21T11:09:26.930 に答える
1

これを試して。

var path = require('path');
console.log(path.dirname(module.parent.filename));
于 2013-07-09T22:01:39.160 に答える