request()和fs.createReadStream()没有返回“正确”的值

时间:2016-11-18 10:45:38

标签: javascript arrays node.js request fs

我正在尝试使用Node.js抓取网页的内容,并将其与我作为文件存储的同一页面的副本进行比较,如下所示:

var fs = require("fs");
var request = require("request");
var archive = ["./archive.html", "http://praguerace.com/comic/archive"];

request(archive[1], //request Prague Race's archive
    function (error, response, body) {
        if (fs.createReadStream(archive[0]) == body) //if no change occurred
            console.log("checkpoint 1");
        else
            console.log("checkpoint 2");
    }
);

我已经安装了Request模块(正确),并且我没有使用Express。

问题是脚本不断打印“checkpoint 2”,就好像我从服务器上获得的响应我正在尝试抓不断变化,或者Node不知道==的含义。< / p>

1 个答案:

答案 0 :(得分:1)

fs.createReadStream(archive [0])返回一个流,而不是内容

使用流事件来检索内容,readStream.on('open','data'等...

或者只使用readFile或readFileSync

异步版本:

liveView

同步版

request(archive[1], //request Prague Race's archive
function (error, response, body) {
   fs.readFile(archive[0], "utf8", function(err, data){
     if(data  == body)
       ....
     else
        ....
    });
});