[英]How do I make node.js execute some code only if my file is the running file?
[英]How do I make use of an xml file in node.js?
在我的server.js文件中,我提出了一個HTTP GET請求,該請求應該返回xml。 當我將GET請求的響應記錄到控制台時,它看上去很亂,其中包含很多問號和黑色菱形,如下圖所示:
當我在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中的extract方法還是使用不正確? 我正在嘗試“提取”或解壓縮response.data。
基於此: 在Node.js跨平台中下載和解壓縮文件的最簡單方法?
var feedURL = 'http://www2.jobs2careers.com/feed.php?id=1237-2595&c=1&pass=HeahE0W1ecAkkF0l';
var request = require('request'),
zlib = require('zlib'),
fs = require('fs'),
out = fs.createWriteStream('./feed.xml');
request(feedURL).pipe(zlib.createGunzip()).pipe(out);
在更新的代碼中,您似乎需要將第一個參數(response.data)設置為gzip文件的文件系統上的路徑,因此出現了空字節錯誤。 我會考慮寫入文件系統,然后解壓縮,或者使用另一個模塊從URL中解壓縮。
當確實從提取的gzip文件中獲取XML(您在正確的路徑上,沒有雙關語)時,可以使用諸如xml2js之類的節點模塊,它將xml解析為Javascript對象,並使其相當易於使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.