【发布时间】:2017-04-01 18:24:51
【问题描述】:
我有一个名为 fetchXML 的函数,它假设将一个 XML 文件写入我的名为 feed.xml 的根目录,然后我想控制台记录 feed.xml 中的数据。我使用 fs.readFile 并使用 'utf-8' 指定编码,如以下问题所示:Why does Node.js' fs.readFile() return a buffer instead of string?
但我的 console.log 的结果仍然是一个缓冲区。我检查了 feed.xml,它确实包含 xml。
var out = fs.createWriteStream('./feed.xml');
var fetchXML = function() {
var feedURL = 'http://www2.jobs2careers.com/feed.php?id=1237-2595&c=1&pass=HeahE0W1ecAkkF0l';
var stream = request(feedURL).pipe(zlib.createGunzip()).pipe(out);
stream.on('finish', function() {
fs.readFile('./feed.xml', 'utf-8', function(err, data) {
console.log(data);
});
});
}
fetchXML();
【问题讨论】:
-
什么节点版本?
-
最新的实验功能。 7.1
-
我假设从 readFile 返回的错误为空?另外,输出是否正确(除了作为缓冲区而不是字符串)?
-
没有错误,但是我不知道如何回答你关于缓冲区是否正确的问题,我只知道它是一个缓冲区而不是包含xml的字符串。
-
我的意思是,对于您期望的 xml,字节是正确的 ascii 吗?另外,您使用的是什么 zlib 库?