2017-05-04 10 views
1

나는이 오류가 맥이 아닌 윈도우에서 작동합니다.Nodejs fs.js TyperError는

내가이 문제를 해결하는 방법을 잘 모르겠어요, 나는 nodejs 모르는 잘

는 여기에 내가 여러 장소에서 FS를 사용할 때 문제가 있는지 내 코드의 전체, 아니다

// load modules 
var request = require('request'); 

// create text file on disk 
var filename = Date.now(); // date for filename 
var fs = require('fs'); // code to make file 
fs.writeFile("" + filename + ".csv", "", function(err) { 
    if (err) { 
     return console.log(err); 
    } 

    console.log("The file " + filename + ".csv was created!"); 
}); // create text file on disk end 

// read urls file 
var fs = require("fs"); 
fs.readFile("urls.txt", function(err, f){ 
    var urls = f.toString().split('\n'); 
    console.log("Finished reading URLs file...") 
    // use the array 

// loop through every file 
for (var i = 0; i < urls.length; i++) { 
     console.log('\x1b[32m%s\x1b[0m',"Loaded to memory -> ",urls[i]); 

setTimeout(main, i * 300, urls[i], i, urls.length); 

}// end loop 

}); // read urls end 

console.log("Loop done..."); 

    function main (url, lineNumber, totalLines) { 
     // get request to url 
     request(url, function (error, response, body) { 
      if (typeof response == 'undefined' || response == null) { 
      return; 
      } 
      if (response.statusCode !== 200) { return; } 
    //  console.log('error:', error); // Print the error if one occurred 
      console.log('\x1b[2m%s\x1b[0m','StatusCode for ' + url + ' ->', response && response.statusCode); // Print the response status code if a response was received 
    //  console.log('body:', body); // Print the HTML for the Google homepage. 

      //define my regex 
      var myregex = /href="([^"]*contact[^"]*)"/gi; 

      // make sure it's not null 
      if (typeof body == 'undefined' || body == null || body.match(myregex) == 'undefined' || body.match(myregex) == null){ 
      return; 
      } 

      // find contact urls using regex and puts it in array 
      results = body.match(myregex).slice(1); 
    //  console.log(results); 

       //loop through arrays of regexes 
       for (var x = 0; x < results.length; x++) { 
        //remove href from string 
        results[x] = results[x].replace('href="', ''); 
        results[x] = results[x].replace('"', ''); 



        //add root domain if it doesn't have it 
        if (results[x].match(/http/) == null) { 
        //trim to root 
        trim = RegExp(/(http:\/\/|https:\/\/).+?\//); 
        console.log("Has no root -> " + url); 
        url = url.match(trim)[0]; 
        console.log("Trimming domain... Done -> " + url); 
        //add domain 
        results[x] = url + results[x]; 
        //clean double slashes 
        results[x] = results[x].replace(/([^:])(\/\/+)/g, '$1/'); 
        console.log("Adding root complete -> " + results[x]); 

        } 
        else { 
         console.log("Found contact url for " + url + " -> " + results[x]); 
        } 

        // writing to disk 
        var fs = require('fs'); 
        fs.appendFileSync(filename + ".csv",lineNumber + "," + results[x] + "\n", function(err) { 
         if (err) { 
          return console.log(err); 
         } 
        }); // writing to disk end 
       console.log('\x1b[32m%s\x1b[0m', "Added to the text file " + filename + ".csv " + results[x] + " (" + lineNumber + " of " + totalLines + " " + Math.floor((lineNumber/totalLines) * 100) + "% completed!)"); 
       } 

     }); // end get request to url 
    }; //end main 

답변