私はNodeJSを使用しています。私たちがブラウザで行うように、ノードにjavascriptファイルを必要とすることは可能ですか? require()メソッドを使用するとjavascriptファイルが呼び出されるため、server.js内のグローバル変数にアクセスすることができないため、「use strict」のようになります。私のモジュールはいくつかのグローバル変数に依存しているので、モジュールをロードしてメインファイルの続きにする必要がありました。NodeJsファイルが必要です
編集:私はこのserver.jsファイル持って
:ここ
var Settings = require("settings.js");
var Clients = require("clients.js");
var removePack = [];
/**HERE RUNS MY WEBSOCKET SERVER**/
...
...
//When a new socket connects:
io.on("connection", function(socket){
var socket.id = Math.random();
var client = Clients.create(socket.id);
});
を私clients.jsファイル:
exports.create = function(){
self.team = Settings.generateRandomTeam(); /*The problem is here. I can´t access the Settings variable*/
self.maxSpeed = Settings.maxSpeed;
...
...
return self;
}
EDIT 2:
設定を使用すると= require( "settings.js")次のエラーが表示されます。
TypeError:Settings.generateRandomTeam()は関数ではありません。
Settings.generateRandomTeam = function(){
//Some code
}
module.exports = Settings;
ありがとう:
私settings.jsファイルはこのようなものです!
あなたは単に 'var foo = require( 'foo.js');'を実行します。あなたがアクセスしたいものをエクスポートすることを確認してください – Li357
正しいパスを使用してください! 'var foo = require( 'foo.js');'のようなファイルが必要な場合 - これはあなたのコンピュータ上にグローバルモジュールを必要としています。 'var foo = require( './ foo.js');' – James111
まず、node.jsでは、グローバル変数(99.9999%またはそれが必要でないか適切でない時)を使うことについて考えることはありません。 node.jsのモジュールがどのように動作するか、モジュール間でデータを共有する方法を学ぶ必要があります。ヒント:グローバルを使うことはnode.jsでやる方法ではありません。プッシュまたはプルモデルを使用して共有することができます。最も単純な方法は、モジュールコンストラクタを呼び出して、共有するデータを他のモジュールにプッシュしているため、共有するデータを「プッシュ」モデルと呼ぶことです。 – jfriend00