2017-06-01 10 views
0

Node.jsでグローバル変数を使用したことがないので、なぜこれが機能しないのか理解できません。私は配列であるグローバル変数を宣言しています。オブジェクトにプッシュするよりも、デバッグのために文字列化したいだけです。Node.js内のグローバルに宣言された配列へのオブジェクトのプッシュ

var test = require('./api/test'); //my class 
global.arrayOfObjects = []; //declaring array 
global.arrayOfObjects.push = new test(123); //docs3._id is something I return from db 
console.log(JSON.stringify(global.arrayOfObjects)); //I get [] 
+3

は、なぜあなたは、新しいオブジェクトであることを '.push'プロパティを再定義したのですか? '.push()'メソッドを呼び出すことを意味しましたか? – jfriend00

答えて

4

私はこのようにそれを試してみましたあなたはあなたが望むオブジェクトを渡さなければなりませんtは引数として配列にプッシュする:

global.arrayOfObjects.push(new test(123));

Array.prototype.push() documentation

+1

私は良いと思う、プラス1つ;) –

0

あなたがこの3のいずれかを実行する必要があり、あなたは両方のミックスインされています:

var test = require('./api/test'); 
//global.arrayOfObjects = []; not need to declare the var here 
global.arrayOfObjects = new test(123); from db 
console.log(JSON.stringify(global.arrayOfObjects)); 

または

var test = require('./api/test'); 
global.arrayOfObjects = []; //needed to declare with this option 
global.arrayOfObjects.push(1); 
global.arrayOfObjects.push(2); 
global.arrayOfObjects.push(3); 
console.log(JSON.stringify(global.arrayOfObjects)); 

または

global.arrayOfObjects.push(new test(123)); // I think this is the best option 
+0

なぜ 'global.arrayOfObjects = []'を割り当てて、すぐに同じ変数に他のものを割り当てるのですか? – jfriend00

+0

@ jfriend00私は本当にそれを示唆していません...しかし、OPがしたいと思った...多分私はまた、観測で答えを更新するでしょう –

+0

@ jfriend00私はそれが今より良いと思いますか? –

関連する問題