0

node.jsの探索を開始し、次の問題に直面しました

start.js、core/core.js、core/child.js の 3 つのファイルがあるとします。

  1. start.js にはコードに core.js が必要です
  2. core.js は、これらの設定でクラスターを使用して子プロセス (core/child.js) を作成します

    cluster.setupMaster({
        exec: './core/child.js'
    });
    

core.jsとchild.jsは同じフォルダにあるのですが、使うとエラー(見つかりません)になります

exec: './child.js'

ドキュメントで同様のものは見つかりませんでしたが、

require('./child.js')

完璧に動作します。パスがもう少し長くても問題ありません。core.js へのローカル パスを使用できない理由を理解しようとしているだけです。

4

1 に答える 1

1

require()現在のコード ファイルの場所に対して相対的に動作しますが、Node.js の他のほとんどの操作 (他のプロセスの起動を含む) は、現在の作業ディレクトリに対して相対的process.cwd()です。

現在のファイルに対する相対パスを生成する必要がある場合は、__dirname実行時にすべてのモジュールで使用可能な変数を使用できます。

var childPath = require('path').join(__dirname, 'child.js');
于 2013-04-08T23:06:25.020 に答える