From 8b2250ac872e6b3f53c688eed0530477a2124167 Mon Sep 17 00:00:00 2001 From: Arsenii Bohak Date: Tue, 5 Nov 2024 13:17:44 +0200 Subject: [PATCH] test upload 3 --- js/server.js | 101 ++++++++++++++++++++++++++++----------------------- 1 file changed, 55 insertions(+), 46 deletions(-) diff --git a/js/server.js b/js/server.js index 66a0411..e8d7877 100644 --- a/js/server.js +++ b/js/server.js @@ -93,59 +93,68 @@ app.get('/photos', async (req, res) => { //2 ulpoad app.post('/upload', upload.single('photo'), async (req, res) => { - try { - const { description, decorName, price } = req.body; + + + console.log("Файл отримано для завантаження:", req.file); + if (!req.file) { - return res.status(400).json({ message: 'Файл не завантажено.' }); + console.error("Файл відсутній у запиті."); + return res.status(400).json({ message: 'Не вдалося завантажити фото, файл відсутній.' }); } - const uniqueToken = uuidv4(); - const blob = bucket.file(`uploads/${req.file.originalname}`); - const blobStream = blob.createWriteStream({ - metadata: { - contentType: req.file.mimetype, - metadata: { - firebaseStorageDownloadTokens: uniqueToken, - }, - }, - }); - - blobStream.on('error', (error) => { - console.error('Помилка завантаження в Firebase Storage:', error); - return res.status(500).json({ message: 'Не вдалося завантажити фото.' }); - }); - - blobStream.on('finish', async () => { - const publicUrl = `https://firebasestorage.googleapis.com/v0/b/${bucket.name}/o/uploads%2F${encodeURIComponent(req.file.originalname)}?alt=media&token=${uniqueToken}`; - - const newPhoto = { - name: req.file.originalname, - url: publicUrl, - description: description || 'Опис відсутній', - decorName: decorName || 'Назва декору відсутня', - price: price ? parseFloat(price) : 0, - }; - - try { - await db.collection('photos').add(newPhoto); - console.log('Фото успішно збережено в Firestore:', newPhoto); - res.status(200).json({ message: 'Фото успішно завантажено!', file: newPhoto }); - } catch (error) { - console.error('Помилка збереження в Firestore:', error); - res.status(500).json({ message: 'Не вдалося зберегти фото в Firestore.' }); - } - }); - - blobStream.end(req.file.buffer); - } catch (error) { - console.error('Помилка завантаження фото:', error); - res.status(500).json({ message: 'Сталася помилка при завантаженні фото.' }); - } + const { description, decorName, price } = req.body; + + if (!req.file) { + return res.status(400).json({ message: 'Файл не завантажено.' }); + } + + try { + const uniqueToken = uuidv4(); + const blob = bucket.file(`uploads/${req.file.originalname}`); + const blobStream = blob.createWriteStream({ + metadata: { + contentType: req.file.mimetype, + metadata: { + firebaseStorageDownloadTokens: uniqueToken, + }, + }, + }); + + blobStream.on('error', (error) => { + console.error("Помилка завантаження в Firebase Storage:", error); + res.status(500).json({ message: 'Не вдалося завантажити фото.' }); + }); + + blobStream.on('finish', async () => { + const publicUrl = `https://firebasestorage.googleapis.com/v0/b/${bucket.name}/o/uploads%2F${encodeURIComponent(req.file.originalname)}?alt=media&token=${uniqueToken}`; + + const newPhoto = { + name: req.file.originalname, + url: publicUrl, + description: description || 'Опис відсутній', + decorName: decorName || 'Назва декору відсутня', + price: price ? parseFloat(price) : 0, + }; + + try { + await db.collection('photos').add(newPhoto); + console.log("Фото успішно збережено в Firestore:", newPhoto); + res.status(200).json({ message: 'Фото успішно завантажено!', file: newPhoto }); + } catch (error) { + console.error("Помилка збереження в Firestore:", error); + res.status(500).json({ message: 'Не вдалося зберегти фото в Firestore.' }); + } + }); + + blobStream.end(req.file.buffer); + } catch (error) { + console.error("Помилка під час обробки файлу:", error); + res.status(500).json({ message: 'Помилка завантаження файлу.' }); + } }); - // Додавання нового фото // app.post('/upload', upload.single('photo'), (req, res) => { // const { description, decorName, price } = req.body;