Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Node.js Image upload error


lovecraft0Z

Öne çıkan mesajlar

Ya bir türlü çözemedim, var mıdır buradan yarım edebilecek;

firebase storage a node.js kullanarak image upload function yapıyorum, BusBoy yükledim, bir hata veriyor çözemedim, kod:

Alıntı

exports.uploadImage = (req, res) => {

const BusBoy = require('busboy');

const path = require('path');

const os = require('os');

const fs = require('fs');

 

const busboy = new BusBoy({ headers: req.headers });

 

let imageToBeUploaded = {};

let imageFileName;

 

busboy.on('file', (fieldname, file, filename, encoding, mimetype) => {

console.log(fieldname, file, filename, encoding, mimetype);

if (mimetype !== 'image/jpeg' && mimetype !== 'image/png') {

return res.status(400).json({ error: 'Wrong file type submitted' });

}

// my.image.png => ['my', 'image', 'png']

const imageExtension = filename.split('.')[filename.split('.').length - 1];

// 32756238461724837.png

imageFileName = `${Math.round(

Math.random() * 1000000000000

).toString()}.${imageExtension}`;

const filepath = path.join(os.tmpdir(), imageFileName);

imageToBeUploaded = { filepath, mimetype };

file.pipe(fs.createWriteStream(filepath));

});

busboy.on('finish', () => {

admin

.storage()

.bucket()

.upload(imageToBeUploaded.filepath, {

resumable: false,

metadata: {

metadata: {

contentType: imageToBeUploaded.mimetype

}

}

})

.then(() => {

const imageUrl = `https://firebasestorage.googleapis.com/v0/b/${

config.storageBucket

}/o/${imageFileName}?alt=media`;

return db.doc(`/users/${req.user.handle}`).update({ imageUrl });

})

.then(() => {

return res.json({ message: 'image uploaded successfully' });

})

.catch((err) => {

console.error(err);

return res.status(500).json({ error: 'something went wrong' });

});

});

busboy.end(req.rawBody);

};

 

firebase serve yapınca şu hatayı veriyor:

 

Alıntı

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined
>      at validateString (internal/validators.js:125:11)

 

 

 

 

lovecraft0Z tarafından düzenlendi
Link to comment
Sosyal ağlarda paylaş

emulator started at Localhost:5001 diyorsa tamamdir zaten, her turlu console.log un gorunmesi lazim o terminalde.

eger gorunmuyosa o zaman senin request oraya gelmiyodur bile. app in basina bir tane koy, print ettiginden emin ol, daha sonra step by step gidersin.

aslinda postman le falan ugrasacagina, direkt test yazip mocha fln ile onunla debug etsene, boylece debugger da attach edebilirsin, bu sekilde post-log-debug kurde$an dokturur uzun vadede asdf

Link to comment
Sosyal ağlarda paylaş

Yalnız get metodum var bir tane, tüm önceki girişleri ekrana basıyor, düzgün çalışıyor problem yok, ona console.log lar ekledim onları da hiç bir yerde göremiyorum, kafayı çizicem. 5001 status alive diyor inspect ten consola bakıyorum hiçbişey basmıyor, metod düzgün çalışıyor oysa

Link to comment
Sosyal ağlarda paylaş

musait olsam google hangouts tan cozmeye calisirdik ama degilim malesef. sen bir video session fln cekmeye calisip bi yere yukle bence, daha anlasilir olur, ordaki konsol olayinda bi anlasmaslik var.

benim local firebase de tum console log lar basiyo terminale anlamadim o kismi.

Link to comment
Sosyal ağlarda paylaş

5 dakika önce, reyou dedi ki:

musait olsam google hangouts tan cozmeye calisirdik ama degilim malesef. sen bir video session fln cekmeye calisip bi yere yukle bence, daha anlasilir olur, ordaki konsol olayinda bi anlasmaslik var.

benim local firebase de tum console log lar basiyo terminale anlamadim o kismi.

Tamam hocam terminalde basıyomuş doğru, şimdi function ın başında da basıyor ama busboy.on dan itibaren basmıyor, error catch yapıyor, sorun busboy da - ben biraz uğraşayım

Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...