title: TypeError: Cannot read property 'latestTimestamp' of undefined
body: <p>I found lots of similar questions, but I still don't know what's wrong with my code. It seems that I cannot read global variable value (urls) in the callback function: I want to update the urls latestTimestamp value in the callback function(err, articles). Here is the code that went wrong:</p>
  
  <pre><code>var urls=[
      {"url": "http://www.economist.com/feeds/print-sections/77/business.xml", "latestTimestamp": new Number(0)},
      {"url": "http://news.sky.com/feeds/rss/home.xml", "latestTimestamp": new Number(0)},
      ]; // Example RSS Feeds; 
  
  // parse RssFeeds from given websites and write them into databse
  function parseRssFeeds(collection){
      var feed = require('feed-read');  // require the feed-read module
  
      // loop through our list of RSS feed urls
      for (var j = 0; j &lt; urls.length; j++)
      {
          console.log('Original url timestamp is: '+ urls[j].latestTimestamp.toString());
  
          // fetch rss feed for the url: 
          feed(urls[j], function(err, articles)
          {
              // loop through the list of articles returned
              for (var i = 0; i &lt; articles.length; i++)
              {           
                  var message = 
                      {"title": articles[i].title,
                       "link": articles[i].link,
                       "content": articles[i].content,
                       "published": articles[i].published.getTime()};
  
                  collection.insert(message, {safe:true}, function(err, docs) {
                      if (err) {
                          console.log('Insert error: '+err);
                      }else{
                          console.log('This item timestamp is: '+ message.published);
                          // get the latest timestamp
                          if (message.published &gt;urls[j].latestTimestamp) {
                              console.log('update timestamp to be: '+ message.published);
                              urls[j].latestTimestamp = message.published;
                          }   
                      }
                  });// end collection insert         
              } //  end inner for loop
          }) // end call to feed method
  
      } // end urls for loop
  }
  </code></pre>
  
  <p>Thanks for any help. The error is: </p>
  
  <pre><code>TypeError: Cannot read property 'latestTimestamp' of undefined
      at /Users/Laura/Documents/IBM/project/TestList/app.js:244:37
      at /Users/Laura/Documents/IBM/project/TestList/node_modules/mongodb/lib/mongodb/collection/core.js:123:9
      at /Users/Laura/Documents/IBM/project/TestList/node_modules/mongodb/lib/mongodb/db.js:1131:7
      at /Users/Laura/Documents/IBM/project/TestList/node_modules/mongodb/lib/mongodb/db.js:1847:9
      at Server.Base._callHandler (/Users/Laura/Documents/IBM/project/TestList/node_modules/mongodb/lib/mongodb/connection/base.js:445:41)
      at /Users/Laura/Documents/IBM/project/TestList/node_modules/mongodb/lib/mongodb/connection/server.js:478:18
      at MongoReply.parseBody (/Users/Laura/Documents/IBM/project/TestList/node_modules/mongodb/lib/mongodb/responses/mongo_reply.js:68:5)
      at null.&lt;anonymous&gt; (/Users/Laura/Documents/IBM/project/TestList/node_modules/mongodb/lib/mongodb/connection/server.js:436:20)
      at emit (events.js:95:17)
      at null.&lt;anonymous&gt; (/Users/Laura/Documents/IBM/project/TestList/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:201:13)
  </code></pre>