Focus mode
Şimdiye kadar fotoğraların yalnızca ismini va açıklamalarını gönderdik, bu çalışma da ise fotoğrafın kendisini nasıl göndereceğimiz üzerine konuşacağız. Bunun için express-fileupload
modülünü kullanacağız. Bu modülü indirelim.
npm i express-fileupload
Görseli göndermek için formumuzda ilgili input alanının, name="image" ve type="file" olduğuna dikkat ediniz. Ayrıca görsel göndermemiz için encType="multipart/form-data"
eklememiz gerekir. Bundan sonra express-fileupload modülün de yardımıyla bundan sonra req.files.image
nesnesi yardımıyla gönderilen görsel özelliklerine ulaşabiliriz. express-fileupload modülünü kullanmak için aşağıdaki işlemleri yapacağız.
const fileUpload = require('express-fileupload'); // modülü kullanıma alıyoruz.
app.use(fileUpload()); // middleware olarak kaydediyoruz.
const uploadDir = 'public/uploads';
if (!fs.existsSync(uploadDir)) { // Bunun için const fs = require('fs'); almamız gerekir.
fs.mkdirSync(uploadDir);
}
let uploadeImage = req.files.image;
let uploadPath = __dirname + '/public/uploads/' + uploadeImage.name;
uploadeImage.mv(uploadPath, async () => {
await Photo.create({
...req.body,
image: '/uploads/' + uploadeImage.name,
});
ilgili yönlendirmenin son hali aşağıdadır:
app.post('/photos', async (req, res) => {
await Photo.create(req.body)
res.redirect('/')
});
const uploadDir = 'public/uploads';
if (!fs.existsSync(uploadDir)) {
fs.mkdirSync(uploadDir);
}
let uploadeImage = req.files.image;
let uploadPath = __dirname + '/public/uploads/' + uploadeImage.name;
uploadeImage.mv(uploadPath, async () => {
await Photo.create({
...req.body,
image: '/uploads/' + uploadeImage.name,
});
res.redirect('/');
});
});
Yazılım Kariyerinde İlerlemeni Hızlandıracak Eğitimler
Kendi kendine yazılım öğrenirken zorlanıyor, takıldığın noktalarda bir mentore mi ihtiyaç duyuyorsun? Patika+ programlarımız ile 4-8 aylık yoğun eğitim kamplarına katıl, proje tabanlı canlı dersler ve sana özel hazırlanmış eğitimlerle gereken tüm yetenekleri kazan, iş hayatına başla!
You need to enroll in the course to be able to comment!