मैं nseindia.com से फ़ाइलों को डाउनलोड करने और स्मृति में अनजिप करने का प्रयास कर रहा हूं। मैं नोडजेस वेबकिट और एडम-ज़िप का उपयोग कर रहा हूं। मुझे कंसोल पर त्रुटि मिल रही है:nodejs url से फ़ाइल को डाउनलोड और अनजिप करें, त्रुटि कोई END शीर्षलेख नहीं मिला
अनचाहे अमान्य या असमर्थित ज़िप प्रारूप। कोई अंत नहीं हैडर पाया
कोड:
var http = require('http'),
fs = require('fs'),
request = require('request'),
AdmZip = require('adm-zip'),
out = fs.createWriteStream('data/nseeqbhav.zip'); // For saving NSE Equity bhavcopy
// Downloading NSE Bhavcopy
request(
{ method: 'GET',
uri: 'http://www.nseindia.com/content/historical/EQUITIES/2012/DEC/cm19DEC2012bhav.csv.zip',
headers: { "User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11",
"Referer": "http://www.nseindia.com/products/content/all_daily_reports.htm",
"Accept-Encoding": "gzip,deflate,sdch",
"encoding": "null",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Cookie": "cookie"
}
}
).pipe(out);
var zip = new AdmZip("data/nseeqbhav.zip"),
zipEntries = zip.getEntries();
zip.extractAllTo(/*target path*/"data/unzip/", /*overwrite*/true);
मैं धारा लेकिन कोई सफलता समाप्त करने के लिए निम्नलिखित की कोशिश की।
out.end();
out.destroy();
अग्रिम धन्यवाद।
धन्यवाद वादिम। इसने काम कर दिया। एक प्रश्न, अगर डाउनलोड की गई फ़ाइल (जिसे हम अनजिप कर रहे हैं) इसमें एकाधिक ज़िप हैं, तो हम उन्हें कैसे निकाल सकते हैं? प्रवेश-ज़िप करने के लिए कोई "अंत" घटना नहीं है। – mrkanitkar
जहां तक मुझे लगता है कि विधि 'extractAllTo' सिंक्रोनस है। यह निष्कर्षण पूरा होने तक ईवेंट लूप को अवरुद्ध करता है। तो आपको यहां 'एंड' ईवेंट की आवश्यकता नहीं है। तुल्यकालिक libs के साथ सावधान रहें। यह node.js रास्ता नहीं है और हाइलोड पर फ्रीज हो सकता है। –