NodeJS dosya düzeni nasıl olur?

Kullandığın modüllere göre değişir. Basit bir express uygulaması yapacaksan models, views, controllers, router yapısı kullanabilirsin.
 
Benimki genelde bu şekilde oluyor ("views" yok, çünkü MVC çalışmıyorum.):
1605369856096.png
 
Benimki genelde bu şekilde oluyor ("views" yok, çünkü MVC çalışmıyorum.):
Eki Görüntüle 737619

Models, views, controllers, router ne işe yarar ve bir şey danışmak istiyorum bir blog App yapacağım lakin eğitim serisi mi izlemeliyim kendim yapmaya mı çalışmalıyım kendim yapmaya çalışırsam birçok yerde zorluk çekerim ne dersin?
Benimki genelde bu şekilde oluyor ("views" yok, çünkü MVC çalışmıyorum.):
Eki Görüntüle 737619
Birde middleware olayı ne tam olarak pek bir işe yaramıyor galiba?
 
Son düzenleme:
Birde middleware olayı ne tam olarak pek bir işe yaramıyor galiba?
Bir işe yaramıyorsa neden böyle bir yapı var ve neden kullanıyoruz? 😂

Bir işe yaramaz olur mu? Middleware'ler ile birçok ara kontrolünü yazabilirsin. Örneğin; JWT authentication olan bir uygulamada, middleware olarak bir token kontrolü yazarsın. Route'ını belirlerken, controller metodundan önce, token kontrol metodunu çalıştırırsın. Eğer token'de bir sorun varsa, "res.status(401).json()" ile kullanıcıya hata mesajını dönersin, eğer bir sorun yoksa, "next()" fonksiyonunu çağırırsın ve controller metodun çalışır. Middleware olarak tanımladığın her metod sırayla çalışır ve her birinin en sonunda "next()" fonksiyonunu çağırmalısın. Eğer çağırmazsan, diğer metoda geçmez.

Yukarıdaki açıklamaya bir örnek:
JavaScript:
const router = require('express').Router();

var olmasi_gereken_token = '123456';
var users = [
    {
        name: 'BERK'
    },
    {
        name: 'Deneme'
    }
];

tokenController = async (req, res, next) => {
    var token = req.headers.authorization;
    if (!token) {
        return res.status(401).json({
            message: 'Token yok!'
        });
    }
    if (token != olmasi_gereken_token) {
        return res.status(401).json({
            message: 'Token hatalı!'
        });
    }
    next();
}

userController = async (req, res, next) => {
    return res.json({
        users
    });
}

router.get('/getUsers', tokenController, userController);

module.exports = router;

Bunu örnek olarak kullanabilirsin, fakat direkt olarak canlı uygulamanda kullanma, tamamen güvenli değil. "jsonwebtoken" kütüphanesini kullanarak JWT oluşturmalı ve bu tokeni doğrulamalısın, eğer JWT kullanacaksan.
 

Yeni konular

Geri
Yukarı