2016-03-22 6 views
0

ここで何が間違っていますか?私はFILE1に変数を定義し、FILE2にFILE1を必要とし、MAINにFILE2が必要なので、MAINとFILE2の両方からグローバル変数my_globalにアクセスできると予想しましたが、エラーがスローされます。別のファイルから呼び出したときのJavascriptスコープエラー

FILE1

var my_global=42; 

FILE2

require('FILE1'); 
var harvesterCount=12; 
console.log(harvesterCount+my_global); //throws error 
module.exports = function() {...} 

MAIN

require('FILE2'); 
console.log(my_global); //error here 

Errorステートメント(Screepsからコンソール):

ReferenceError: my_global is not defined 
    at module.exports:8:5 
    at Object.module.exports.loop:6:5 
    at __mainLoop:1:12057 
    at eval:2:4 
    at Object.c.runCode:6:26869 
+0

のNode.jsを使って上記のエクスポート変数を参照することができますか? –

答えて

0

グローバルスコープにファイルを漏洩しません。例えば、

var my_global=42; 
exports = { 
    my_global:my_global 
} 

あなたがしようとしている

var m = require('file1'); 
console.log(m.my_global); 
0

<script>タグを使用してではなく、require

を使用してファイルを参照するようにしてみて、私はstackoverflowの程度requireから別のanswerで参照してください。 これがあなたを助けてくれることを願っています。

require()はあなたの標準JavaScriptの一部ではありません。 質問とタグの文脈では、モジュールをロードするためにNode.jsにrequire()が組み込まれています。 コンセプトはC/Java/Python/[more languagesをここに挿入]に似ています インポートまたはインクルード。

モジュールの概念は、 JavaScriptコードの小さなビットをタグで追加するのと似ています。 タグを追加することとは異なり、それ は行動が正しいとあなたではなく、変数をエクスポートする必要があり

+0

あなたの記事のおかげで私はここで答えを見つけました:http://stackoverflow.com/questions/5311334/what-is-the-purpose-of-node-js-module-exports-and-how-do-you-use -it/5311377#5311377グローバル変数をエクスポートする必要がありました – Rilcon42

+0

Javascriptの中に '

  • 11. JavaScriptからJSPファイルを呼び出す
  • 12. 別のJavascriptファイルから1つのJavascriptファイル内の関数を呼び出しますか?
  • 13. link_toの後の別のファイルからの呼び出し方法
  • 14. Javascriptで前のフェッチ呼び出しから応答が来た後、別のフェッチを呼び出す方法は?
  • 15. xslファイルから別のファイルへの呼び出しと応答の受信
  • 16. 別の.cppファイルからのQT呼び出し関数C++
  • 17. ファイルから別のUIオブジェクトへの呼び出し
  • 18. ストアドプロシージャを1つのファイルから別のファイルに呼び出す
  • 19. 別のページのjavascriptからページのwebmethodを呼び出す
  • 20. EJSの別のファイルからJavascript関数を呼び出す方法
  • 21. 別のストアドプロシージャからsp_addextendedpropertyを呼び出すときのエラー
  • 22. QTの別のGUIスレッドからスレッドを呼び出すとき
  • 23. 別のPHPファイルからPHPファイルを呼び出す
  • 24. javascriptファイルからの目的cメソッド呼び出し
  • 25. jquery内の別のjavascriptから関数を呼び出す
  • 26. 同じクラスの別のメソッドからjavascriptクラスメソッドを呼び出す
  • 27. AMPページからJavaScriptを呼び出して呼び出す
  • 28. c#別のクラスからの部分呼び出しの呼び出しメソッド
  • 29. コードラインのトレース/ JavaScriptからの関数呼び出しの呼び出し
  • 30. 、JavaScriptからストアドプロシージャを呼び出すしようとするとJavaScriptの呼び出しストアドプロシージャ