Express üzerinden Redis veritabanına Nasıl Ulaşırım?

Express web uygulaması geliştirmek için kullanılan hızlı, performanslı çalışan ve minimalist bir web çatısıdır. Node Js altyapısı üzerinde çalışmaktadır. Node Js sadece javascript dilini kullanak bir web uygulaması geliştirmek için hem backend (arka uç) hem de frontend (ön uç) tarafında ihtiyacımız olan tüm araçları bize sağlamaktadır.

Express web uygulama çatısı olarak en yaygın kullanılan ve sevilen kütüphanelerden birisidir. Github yıldız sayısı şu an itibariyle 47k’ya ulaşmış durumdadır.

Redis ise hafıza üzerinde (in-memory) çalışan bir veritabanı servisidir. Farklı amaçlar için redis servisini kullanabiliriz. Veritabanı olarak ya da cache tutmak amacıyla ya da mesajları yönetmek (message broker) için kullanabiliriz. Redis hızlı, performanslı ve çok yaygın bir veritabanı servis olarak kendisini ıspatlamıştır.

Biz de bir projemizde express ve redis’i birlikte kullanmak istedik. Kullanırken de yeni bir asenkron iletişim yapısı olan async/await yapısına uygun bir şekilde projemizi geliştirmeye karar verdik. Bir kaç basit adımla ikisine en efektif bir şekilde kullanacağız arkadaşlar.

Express Uygulamasını Oluşturun

Komut satırında aşağıdaki satırı çalıştırın. express-generator bize çalışmaya hazır bir çatı oluşturur. View katmanı olarak pug seçiyorum, çok önemli değil. Siz default olarak gelen view yapısını kullanabilirsiniz.

Bilgisayarınızda node js (npm) kurulu olduğunu varsayıyorum.

npx express-generator --view=pug myapp

Bu komut bize herşeyi ile kullanıma hazır bir proje yapısı oluşturur:

express uygulama kurulumu

Windows üzerinde çalışırken, projeyi oluştururken powershell kullandım. Fakat vahim bir hata yaptığımı farkettim. Uygulamayı çalıştırırken, powershell sözdizimine uygun olmadığı için hata verecektir. O yüzden eski klasik komut satırı penceresine usulca geçiş yaparak (cmd) komutu çalıştırıyorum.

npm install diyerek modülleri kuruyorum.

npm install

Çalıştırmak içinse gerekli ortam değişkenini set edip, uygulamayı başlatıyorum:

SET DEBUG=myapp:* & npm start

Express Route Oluşturma

İkinci aşamada ise bir route oluşturuyoruz. Amacımız dışardan bu route’a bir istek geldiğinde, redis veritabanına ulaşıp işlem yapmak.

Sisteminizde docker varsa redis’i docker üzerinde çalıştırabilirsiniz:

docker run --name my-redis-container -p 6379:6379 -d redis

redis-cli ile name isimli bir key tanımlayıp, değer set edelim:

redis-cli

Node uygulamasında Redis ile bağlantı kurmak için öncelikle redis istemci paketini kurmamız gerekiyor:

npm install redis

index.js içerisinde route kodunu yazalım:

var express = require('express');
var router = express.Router();
const {promisify} = require('util');

var redis = require("redis"),
    client = redis.createClient();

const getAsync = promisify(client.get).bind(client);    

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

/* GET redis key value. */
router.get('/redisconn', async (req, res, next) => {
  const nameValue = await getAsync('name');
  res.json(
    nameValue
  );
})

module.exports = router;

Herhangi bir tarayıcıdan /redisconn adresine bağlanarak, uygulamamızı test edelim:

nodejs ile redis bağlantısı

Yorum Gönder

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top