69

NodeJsプロジェクトで実行するファイルなどの問題が発生しています。

同じディレクトリに2つのファイルがあります。

a.js

var test = "Hello World";

b.js

require('./a.js');
console.log(test);

でb.jsを実行するnode b.jsと、エラーが発生しますReferenceError: test is not defined

ドキュメントhttp://nodejs.org/api/modules.html#modules_file_modulesを確認しました

私は何が欠けていますか?前もって感謝します。

4

3 に答える 3

98

a.jsを変更して変数をエクスポートします。

exports.test = "Hello World";

の戻り値をrequire('./a.js')変数に割り当てます。

var a = require('./a.js');
console.log(a.test);

よく目にし、おそらく使用するもう 1 つのパターンは、次のように、 a.jsmodule.exports内のオブジェクトに何か (オブジェクト、関数) を割り当てることです。

module.exports = { big: "string" };
于 2012-07-30T17:35:28.730 に答える
23

あなたは何が起こるべきかを誤解しています。モジュールで定義された変数は共有されません。NodeJS はそれらをスコープします。

で返す必要がありmodule.exportsます。

a.js

module.exports = "Hello World";

b.js

var test = require('./a.js');
console.log(test);
于 2012-07-30T17:35:19.010 に答える