NodeJsプロジェクトで実行するファイルなどの問題があります。
同じディレクトリに2つのファイルがあります。
a.js
var test = "Hello World";
そして
b.js
require('./a.js');
console.log(test);
node b.js
を指定してb.jsを実行すると、エラーReferenceError: test is not defined
が表示されます。
私はドキュメントを調べました http://nodejs.org/api/modules.html#modules_file_modules
私は何が欠けていますか?前もって感謝します。
a.jsを変更して変数をエクスポートします。
_exports.test = "Hello World";
_
require('./a.js')
の戻り値を変数に割り当てます。
_var a = require('./a.js');
console.log(a.test);
_
あなたがよく目にし、おそらく使用する別のパターンは、何か(オブジェクト、関数)をa.jsの_module.exports
_オブジェクトに割り当てることです:
_module.exports = { big: "string" };
_
何が起こるべきかを誤解しています。モジュールで定義された変数は共有されません。 NodeJSはそれらをスコープします。
module.exports
で返さなければなりません。
a.js
module.exports = "Hello World";
b.js
var test = require('./a.js');
console.log(test);
別のファイルに変数をエクスポートする場合。2つのパターンがあります。 1つはa.jsです
_global.test = "Hello World";
_ //ここでのテストはグローバル変数ですが、汚染されます
もう一つは
a.js _module.exports.test = "Hello World";
_またはexports.test = "Hello World"; b.js var test = require('./a.js');
//b.jsのテストはa.jsのテストを取得できますconsole.log(test);