在我的server.js文件中,我创建了一个HTTP GET请求,假设它返回xml。当我将GET请求的响应记录到控制台时,它是含有大量问号和黑色菱形的乱码,如下图所示:如何在node.js中使用xml文件?
当我使用我在GET中使用的相同url请求,我在浏览器中打开它,它会自动下载一个gzip文件,该文件解压缩后会包含一个带有数据的清晰xml文件(位于我的文本编辑器内)。
如何在我的server.js文件中以正确的格式获取xml?我需要在我的程序中使用它,而不是在文本编辑器中(显然)。
这里是我的GET请求:
axios.get('http://www2.jobs2careers.com/feed.php?id=1237-2595&c=1&pass=HeahE0W1ecAkkF0l')
.then(function(response) {
console.log(response.data);
});
我试着使用targz库提取gzip文件,如下图所示:
axios.get('http://www2.jobs2careers.com/feed.php?id=1237-2595&c=1&pass=HeahE0W1ecAkkF0l')
.then(function(response) {
targz().extract(response.data, '/data', function(err){
if (err) {
console.log('Something is wrong ', err.stack);
}
console.log('Job done!');
});
});
我在控制台中说的错误: “路径必须是一个没有空字节的字符串”。我应该从targz使用提取方法还是仅仅使用它不正确?我试图“提取”或解压缩response.data。
答案就在你的问题:响应不是一个XML文件,这是一个gzip文件。您需要一个可以提取它的节点模块。这里有一个:https://www.npmjs.com/package/tar.gz –
你也有zlib https://nodejs.org/api/zlib.html#zlib_class_zlib_gzip –
可能的重复:http://stackoverflow.com/questions/12148948/how-do-i-ungzip-decompress -a-nodejs-requests-module-gzip-response-body – jgozal