title: Write array object to JSON in node.js
body: <p>I am trying to write some items I pushed into an array into a JSON file in node.js but I can't figure out how to wait for the array to contain the items before writing the JSON file. As a result the file is always empty. Do i need to have a callback? If so, how? <strong>NB:I'm still new to node.js</strong></p>
  
  <p>This is the code below:</p>
  
  <pre><code>    var getLinks = require('./news_archive/news_links.js');
      var request = require('request');
      var cheerio = require('cheerio');
      var fs = require('fs');
      var saveNews = './news_archive/news.json';
      var jsonObj = [];
      var i;
      var number_of_links = getLinks.links.length;
  
  
      for(i=0; i&lt;number_of_links; i++){
  
          //GET ARTICLE LINK FROM link.js
          var url = "http://www.times.co.sz/"+getLinks.links[i];
  
          request(url, function(err, resp, body){
          var $ = cheerio.load(body);
  
          //GET ARTICLE HEADLINE
          var storyHeadline = $('#article_holder h1');
          var storyHeadlineText = storyHeadline.text();
  
          //GET DATE POSTED
          var datePosted = $('.metadata_time');
          var datePostedText = datePosted.text();
  
          //GET ARTICLE REPORTER'S NAME
          var reporterName = $('.article_metadata a');
          var reporterNameText = reporterName.text();
  
          //GET ARTICLE SUMMARY
          var fullStory = $('#article_body span');
          var fullStoryText = fullStory.text();
  
          //PUSH ITEMS TO jsonObj ARRAY 
  
              jsonObj.push({
                  id: i,
                  storyHeadline: storyHeadlineText,
                  datePosted: datePostedText,
                  reporterName: reporterNameText,
                  fullStory: fullStoryText
          })
  
          });
  
      } //END for LOOP
  
          //WRITE TO news.json file
          fs.writeFile(saveNews, JSON.stringify(jsonObj, null, 4), function(err) {
          if(err) {
          console.log(err);
          } else {
          console.log("JSON saved to " + saveNews);
          }
          });
  </code></pre>