Next JS ile Dinamik İçerik Yönetimi: Veritabanı Bağlantısı ve CRUD İşlemleri

Next JS ile Dinamik İçerik Yönetimi: Veritabanı Bağlantısı ve CRUD İşlemleri

Next JS, son zamanlarda popülerliğini arttıran bir React framework'üdür ve dinamik web uygulamaları geliştirmek için oldukça kullanışlıdır. Bu yazıda Next JS kullanarak veritabanı bağlantısı ve CRUD işlemlerini nasıl yapabileceğinizi detaylı bir şekilde ele alacağız.

Öncelikle Next JS projemize bir veritabanı bağlantısı eklemek için mongoose gibi bir ORM aracını kullanabiliriz. Veritabanı bağlantısını kurduktan sonra CRUD işlemlerini gerçekleştirmek için gerekli endpoint'leri oluşturmalıyız.

Örnek olarak, bir kitap listesi uygulaması geliştirdiğimizi düşünelim. Kitapları listelemek, yeni kitap eklemek, mevcut kitapları güncellemek ve silmek gibi temel CRUD işlemlerini gerçekleştirmemiz gerekecektir.


        import mongoose from 'mongoose';

        // Veritabanı bağlantısı
        async function connectDB() {
            await mongoose.connect('mongodb://localhost/my_database', {
                useNewUrlParser: true,
                useUnifiedTopology: true
            });
            console.log('Database connected!');
        }

        // Kitap modeli
        const BookSchema = new mongoose.Schema({
            title: String,
            author: String,
            genre: String
        });

        const Book = mongoose.model('Book', BookSchema);

        // CRUD işlemleri
        // Kitapları listele
        app.get('/api/books', async (req, res) => {
            const books = await Book.find({});
            res.json(books);
        });

        // Yeni kitap ekle
        app.post('/api/books', async (req, res) => {
            const { title, author, genre } = req.body;
            const newBook = new Book({ title, author, genre });
            await newBook.save();
            res.json(newBook);
        });

        // Kitap güncelle
        app.put('/api/books/:id', async (req, res) => {
            const { title, author, genre } = req.body;
            const updatedBook = await Book.findByIdAndUpdate(req.params.id, { title, author, genre }, { new: true });
            res.json(updatedBook);
        });

        // Kitap sil
        app.delete('/api/books/:id', async (req, res) => {
            await Book.findByIdAndDelete(req.params.id);
            res.json({ message: 'Book deleted successfully' });
        });
    
Aşağıdaki yazılar ilginizi çekebilir;