request() 和 fs.createReadStream() 不返回 "right" 值
request() and fs.createReadStream() not returning the "right" values
我正在尝试使用 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 不知道什么 ==
意思是
fs.createReadStream(archive[0]) return 流而不是内容
使用流事件获取内容,readStream.on('open', 'data', 等等...
或者只使用 readFile 或 readFileSync
异步版本:
request(archive[1], //request Prague Race's archive
function (error, response, body) {
fs.readFile(archive[0], "utf8", function(err, data){
if(data == body)
....
else
....
});
});
同步版本
request(archive[1], //request Prague Race's archive
function (error, response, body) {
if(fs.readFileSync(archive[0], "utf8") == body)
....
else
....
});
我正在尝试使用 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 不知道什么 ==
意思是
fs.createReadStream(archive[0]) return 流而不是内容
使用流事件获取内容,readStream.on('open', 'data', 等等...
或者只使用 readFile 或 readFileSync
异步版本:
request(archive[1], //request Prague Race's archive
function (error, response, body) {
fs.readFile(archive[0], "utf8", function(err, data){
if(data == body)
....
else
....
});
});
同步版本
request(archive[1], //request Prague Race's archive
function (error, response, body) {
if(fs.readFileSync(archive[0], "utf8") == body)
....
else
....
});