Node.js ile blog sitesi yapma

Katılım
6 Ağustos 2020
Mesajlar
451
Daha fazla  
Cinsiyet
Erkek
Meslek
Yazılımcı
Başlıkta gördüğünüz gibi lakin sadece Node.js değil Express.js, Passport.js, MongoDB de dahil nasıl yapabilirim? Hele şey kısmı nasıl oluyor merak ediyorum: Gönderi ekleme, o gönderiler nereye kaydoluyor? Gönderi ekleme nasıl yapılır yardımcı olabilir misiniz?
 
Gönderi ekleme nasıl yapılır yardımcı olabilir misiniz?
Her şeyden önce, NoSQL ve ORM mantığını araştırmanı öneririm.

NoSQL'de, SQL'deki table'lar gibi, collection'lar oluşuturuyoruz ve bunlara veri ekliyoruz. MongoDB'de JSON yapısında tutuyor. MongoDB kullanımını bir ORM ile desteklemeni öneririm. Örneğin Mongoose.

ORM ile, en basitinden verilere obje şeklinde davranıp, daha anlaşılır bir şekilde yönetebiliyoruz.

Örnek post oluşturan bir fonksiyon:
JavaScript:
const Post = require('./models/post.js');

exports.createPost = async (req, res) => {
    try {
        var name = req.body.name;
        var text = req.body.text;
        if (!name || !text) {
            return res.status(400).json({
                success: false,
                message: 'You must send name and text fields.'
            });
        }
        var post = await Post.create({ name, text });
        return res.json({
            success: true,
            post
        });
    } catch (error) {
        return res.json({
            success: false,
            error
        });
    }
}

Projeyi MVC (Model,View Controller) yapısında yaptığımızı düşünürsek, bu fonksiyonun olması gereken yer; MVC'nin C, yani controller kısmı. Yani şu şekilde olabilir; "controllers/post.js". En üstünde tanımladığım dosya da MVC'nin M, yani model kısmı. Bu da şu şekilde olabilir; "models/post.js". View kısmı ile ilgili back-end'te bir şey yazmayacağız, onu ayrı bir proje olarak yapmak daha mantıklı olacaktır. Aynı proje içinde de template engine'ler kullanılarak yapılabilir, fakat ben ön yüz ve arka yüzü ayrı projeler olarak yazmayı tercih ediyorum.

Örnek projeleri GitHub'dan incelersen, daha iyi anlayacaksındır. Takıldığın noktaları sorarsan, cevaplayabiliriz.
 
Her şeyden önce, NoSQL ve ORM mantığını araştırmanı öneririm.

NoSQL'de, SQL'deki Table'lar gibi, Collection'lar oluşuturuyoruz ve bunlara veri ekliyoruz. MongoDB'de JSON yapısında tutuyor. MongoDB kullanımını bir ORM ile desteklemeni öneririm. Örneğin Mongoose.

ORM ile, en basitinden verilere obje şeklinde davranıp, daha anlaşılır bir şekilde yönetebiliyoruz.

Örnek post oluşturan bir fonksiyon:
JavaScript:
const Post = require('./models/post.js');

exports.createPost = async (req, res) => {
 try {
 var name = req.body.name;
 var text = req.body.text;
 if (!name || !text) {
 return res.status(400).json({
 success: false,
 message: 'You must send name and text fields.'
 });
 }
 var post = await Post.create({ name, text });
 return res.json({
 success: true,
 post
 });
 } catch (error) {
 return res.json({
 success: false,
 error
 });
 }
}

Projeyi MVC (Model, View Controller) yapısında yaptığımızı düşünürsek, bu fonksiyonun olması gereken yer; MVC'nin C, yani Controller kısmı. Yani şu şekilde olabilir; "controllers/post.js". En üstünde tanımladığım dosya da MVC'nin M, yani model kısmı. Bu da şu şekilde olabilir; "models/post.js". View kısmı ile ilgili Back-End'te bir şey yazmayacağız, onu ayrı bir proje olarak yapmak daha mantıklı olacaktır. Aynı proje içinde de template Engine'ler kullanılarak yapılabilir, fakat ben ön yüz ve arka yüzü ayrı projeler olarak yazmayı tercih ediyorum.

Örnek projeleri GitHub'dan incelersen, daha iyi anlayacaksındır. Takıldığın noktaları sorarsan, cevaplayabiliriz.

Beynim yandı reis :D öncelikle MongoDB veri tabanı mı? Bir de şu kod ne işe yarıyor tam olarak yani gönderi koymaya mı yarıyor biraz karışık geldi.
 
Son düzenleyen: Moderatör:

Geri
Yukarı