Odak modu
Model ve Dinamik İçerik
Geçen çalışmamızda "add photo" sayfamızdan göndericeğimiz verileri nasıl yakalayacağımızı konuştuk. Peki aslında ne yapmak isteriz? Gelen photo bilgilerini yakalayıp oluşturacağımız model ile veritabanına bir döküman olarak yazdırıp sonrasında bu verileri uygun yerde listelemek isteriz.
İlk yapmamız gereken ihtiyacımız olan modeli oluşturmak. models/Photo.js dosyası oluşturalım. Photo.js:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
//create schema
const PhotoSchema = new Schema({
title: String,
description: String,
image: String,
dateCreated: {
type: Date,
default: Date.now,
},
});
const Photo = mongoose.model('Photo', PhotoSchema);
module.exports = Photo;
sonrasında app.js
dosyasına bu modelimizi çağıralım.
const Photo = require('./models/Photo');
POST metodu ile gelen veriyi model dosyamız ile yakalayıp veritabanına gönderelim.
app.post('/photos', async (req, res) => { // async - await yapısı kullanacğız.
await Photo.create(req.body) // body bilgisini Photo modeli sayesinde veritabanında dökümana dönüştürüyoruz.
res.redirect('/')
});
Yukarıdaki yöntemi kullanarak veritabanımızda yeni photo bilgileri oluşturabiliriz. Bu verileri projemizde anasayfamızda sıralamak istiyoruz. Bunun için ise aşağıdaki kodu yazmamız gerekiyor.
app.get('/', async (req, res) => {
const photos = await Photo.find({})
res.render('index', {
photos
});
Photo bilgilerini anasayfaya '/' yardımıyla gönderiyoruz. Peki ilgili index template'in bu verileri alması için gerekli düzenlemeleri yapmamız gerekiyor. Aşağıdaki koları index.ejs dosyasının içerisine yerleştirmemiz gerekiyor.
<% for (let i =0; i < photos.length; i++) { %>
<%= photos[i].title %>
<%= photos[i].description %>
<% } %>
Sektörde en çok aranan yazılım becerilerini kazan
Yapay zeka desteği, birebir mentörlük saatleri, canlı dersler ve senin için özel hazırlanmış içeriklerle eksiklerini tamamla, düzenli geri bildirimler al ve öğrenme sürecini en verimli hale getir.
Yunus Emre Kabakcı
Patika+ mezunuPatika+ Fullstack Web Development Bootcamp mezunumuz Yunus Emre,
3 ay içinde Katar’dan aldığı teklif ile, global bir şirket olan Pavo Group’da işe başladı!
“İçerik zenginliği, mentor desteği, ileriye dönük bir network sağlaması ve dünyada en çok tercih edilen frameworkler üzerinden bir eğitim veriyor olması Patika+’ı tercih etmemin temel sebepleri oldu!“
Yorum yapabilmek için derse kayıt olmalısın!
Bu dersi nasıl buldun?
This website uses cookies to ensure you get the best experience.
Disclaimer: The information /programs / events provided on https://patika.dev and https://risein.com are strictly for upskilling and networking purposes related to the technical infrastructure of blockchain platforms. We do not provide financial or investment advice and do not make any representations regarding the value, profitability, or future price of any blockchain or cryptocurrency. Users are encouraged to conduct their own research and consult with licensed financial professionals before engaging in any investment activities. https://patika.dev and https://risein.com disclaim any responsibility for financial decisions made by users based on information provided here.