Request: كيفية حفظ البيانات الثنائية التي تم تنزيلها دون استخدام الأنبوب

تم إنشاؤها على ١٩ يناير ٢٠١٧  ·  3تعليقات  ·  مصدر: request/request

على خادم العقدة الخاص بي وحاول تنزيل صورة png من عنوان url وكتابتها في ملف:

.get("https://url/for/png/file")
.on('error', function(err) {
  console.log(err)
})
.on('response', function(response){
  console.log(response.statusCode) // 200
  console.log(response.headers['content-type']); // 'image/png'
})
.on('complete', (resp: http.IncomingMessage, body: string | Buffer) => {
  fs.writeFile(".../test.png", body, 'binary');

});

المشكلة الرئيسية هي أن الملف المكتوب تالف (لا يمكن فتحه).

إذا استخدمت أنبوبًا بدلاً من on ("مكتمل" ...) في النهاية ، يكون الملف المكتوب صحيحًا.

.pipe(fs.createWriteStream(".../test.png"))

ما هو الفرق بالضبط وما الذي أفتقده لأتمكن من كتابة الملف؟

التعليق الأكثر فائدة

استخدام الترميز: خيار باطل

ال 3 كومينتر

نفس المشكلة.

استخدام الترميز: خيار باطل

lambdacerro شكرًا لك ، سيتم إغلاق هذه المشكلة بعد ذلك.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات