Firebase在我的node.js应用程序中表现得非常时髦,我不知道为什么。

例如,如果我有一个看起来像这样的变量:

var AllItems= {"itemList":[{"id":1,"name":....}


我可以记录它并使它正确吐出所有内容,但是如果我尝试通过内部数组获得它,就像这样。

var itemList = AllItems[itemList]


返回undefined

如果我尝试一次循环吐出所有这些,则全部如下:

for(i in AllItems){
console.log('i: ',i)
}


它吐出这样的东西:

i:  0
i:  1
i:  2
i:  3


一直到i: 7581,我只有13个项目,假设它正在记录那里的索引号,但没有,它应该随便吐出一个itemList,上面的[{"id":1,"name":....是它的值。

我的firebase模块是

  var Firebase = require("firebase");
   var FirebaseTokenGenerator = require("firebase-token-generator");

最佳答案

我猜您的问题是您不了解如何正确访问AllItem对象。

访问一项

在您的问题中,您尝试通过AllItems[itemList]来访问itemList。此处,itemList被视为变量,即undefined。并且AllItems[undefined]是未定义的。

以下是两种访问方式:

var itemList = allItems['itemList'];
var itemList = allItems.itemList;


在itemLists上循环

我不知道你怎么去i: 7581,但这是我做的:

for(var key in allItems) {
  console.log(allItems[key]);
}


这将记录allItems中的每个itemList。

片段

我对我刚才解释的所有内容都做了一个摘要。


var allItems = {
  "itemList": [{
    "id": 1,
    "name": "item1"
  }, {
    "id": 2,
    "name": "item2"
  }, {
    "id": 2,
    "name": "item2"
  }]
};

// Log itemList (2 ways)
console.log(allItems['itemList']);
console.log(allItems.itemList);

var itemList = allItems.itemList;

// Log every item in itemList
itemList.forEach(function (item) {
  console.log(item);
});

// Log every itemList in allItems
for(var key in allItems) {
  console.log(allItems[key]);
}

关于javascript - Firebase在我的node.js应用中无法正常运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36589374/

10-12 16:24