2017-06-01 46 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

回答

0

必须这样做,三选一,你是混入两个:

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我认为现在更好,你不觉得吗? –