Node.js Express FrameWork Eğitimi – 10 Dakikada Öğrenin
Bu derste Express çerçevesini inceleyeceğiz. Bu çerçeve, minimal ve esnek bir Node.js web uygulaması çerçevesi olarak hareket edecek şekilde oluşturulmuştur ve tek, çok sayfalı ve hibrit web uygulaması oluşturmaya yönelik sağlam bir özellikler kümesi sağlar.
Express.js nedir?
Express.js, tek sayfalı, çok sayfalı ve hibrit web uygulamaları oluşturmak için özel olarak tasarlanmış bir Node js web uygulama sunucusu çerçevesidir.
Node.js için standart sunucu çerçevesi haline geldi. Express, MEAN yığını olarak bilinen bir şeyin arka uç kısmıdır.
MEAN ücretsiz ve açık kaynaktır JavaSenaryo Dinamik web siteleri ve web uygulamaları oluşturmak için aşağıdaki bileşenlere sahip yazılım yığını;
1) MongoDB – Standart NoSQL veritabanı
2) Express.js – Varsayılan web uygulamaları çerçevesi
3) Angular.js - JavaWeb uygulamaları için kullanılan Script MVC framework'ü
4) node.js – Ölçeklenebilir sunucu tarafı ve ağ uygulamaları için kullanılan çerçeve.
Express.js çerçevesi, GET, PUT, POST ve DELETE istekleri gibi birden fazla istek türünü işlemek için kullanılabilecek bir uygulama geliştirmeyi çok kolaylaştırır.
Express'i yükleme ve kullanma
Express, Node Paket Yöneticisi aracılığıyla yüklenir. Bu, komut satırında aşağıdaki satırı çalıştırarak yapılabilir
npm hızlı kurulum
Yukarıdaki komut, Node paket yöneticisinden gerekli ekspres modülleri indirmesini ve uygun şekilde kurmasını ister.
Yeni kurduğumuz Express çerçevemizi kullanalım ve basit bir “Merhaba Dünya” uygulaması oluşturalım.
Uygulamamız 3000 numaralı portta dinleyecek basit bir sunucu modülü oluşturacaktır. Örneğimizde bu port numarasında tarayıcı üzerinden istek yapılırsa sunucu uygulaması istemciye 'Merhaba' Dünya yanıtı gönderecektir. .
var express=require('express'); var app=express(); app.get('/',function(req,res) { res.send('Hello World!'); }); var server=app.listen(3000,function() {});
Kod Açıklaması:
- İlk kod satırımızda “express modülünü” dahil etmek için require fonksiyonunu kullanıyoruz.
- Express modülünü kullanmaya başlamadan önce onu bir nesne haline getirmemiz gerekiyor.
- Burada bir geri arama fonksiyonu oluşturuyoruz. Bu işlev, herhangi biri web uygulamamızın köküne göz attığında çağrılacaktır. http://localhost:3000 . Geri çağırma işlevi 'Merhaba Dünya' dizesini web sayfasına göndermek için kullanılacaktır.
- Geri çağırma fonksiyonunda “Merhaba Dünya” stringini istemciye geri gönderiyoruz. 'Res' parametresi içeriği web sayfasına geri göndermek için kullanılır. Bu 'res' parametresi, içeriğin web sayfasına geri gönderilmesini sağlamak için 'request' modülü tarafından sağlanan bir şeydir.
- Daha sonra sunucu uygulamamızın 3000 numaralı porttaki istemci isteklerini dinlemesini sağlamak için listen to fonksiyonunu kullanıyoruz. Burada mevcut herhangi bir portu belirtebilirsiniz.
Komut başarıyla yürütülürse, kodunuzu tarayıcıda çalıştırdığınızda aşağıdaki Çıktı gösterilecektir.
Çıktı:
Çıktıdan,
- Bağlantı noktası 3000'deki localhost'un URL'sine göz attığımızda, sayfada 'Merhaba Dünya' dizesinin görüntülendiğini açıkça görebilirsiniz.
- Çünkü kodumuzda sunucunun 3000 nolu portta dinleme yapması için özel olarak belirttiğimiz bu URL’ye göz atarken çıktıyı görüntüleyebiliyoruz.
Rotalar nedir?
Yönlendirme, bir uygulamanın belirli bir uç noktaya yönelik bir istemci isteğine nasıl yanıt vereceğini belirler.
Örneğin, bir istemci aşağıda gösterilenler gibi çeşitli URL'ler için GET, POST, PUT veya DELETE http isteğinde bulunabilir;
http://localhost:3000/Books http://localhost:3000/Students
Yukarıdaki örnekte,
- İlk URL için bir GET isteği yapılırsa yanıt ideal olarak bir kitap listesi olmalıdır.
- GET isteği ikinci URL için yapılırsa yanıt ideal olarak bir Öğrenci listesi olmalıdır.
- Böylece erişilen URL'ye bağlı olarak web sunucusunda farklı bir işlevsellik çağrılacak ve buna göre yanıt istemciye gönderilecektir. Bu yönlendirme kavramıdır.
Her rota, rota eşleştirildiğinde yürütülen bir veya daha fazla işleyici işlevine sahip olabilir.
Bir rotanın genel sözdizimi aşağıda gösterilmiştir
app.METHOD(PATH, HANDLER)
burada,
1) uygulama ekspres modülün bir örneğidir
2) METHOD bir HTTP istek yöntemidir (GET, POST, PUT veya DELETE)
3) PATH sunucudaki yoldur.
4) HANDLER rota eşleştiğinde yürütülen fonksiyondur.
Ekspreste rotaları nasıl uygulayabileceğimize dair bir örneğe bakalım. Örneğimiz şu şekilde 3 rota oluşturacaktır:
- Bu rotaya erişilirse “Düğümde Eğitim” dizesini görüntüleyecek bir /Node rotası
- Bu rotaya erişilirse “Angular üzerinde Eğitim” dizesini görüntüleyecek bir /Angular rotası
- “Guru99 Öğreticilerine Hoş Geldiniz” dizesini görüntüleyecek varsayılan rota /.
Temel kodumuz önceki örneklerle aynı kalacaktır. Aşağıdaki kod parçası, yönlendirmenin nasıl uygulandığını gösteren bir eklentidir.
var express = require('express'); var app = express(); app.route('/Node').get(function(req,res) { res.send("Tutorial on Node"); }); app.route('/Angular').get(function(req,res) { res.send("Tutorial on Angular"); }); app.get('/',function(req,res){ res.send('Welcome to Guru99 Tutorials'); }));
Kod Açıklaması:
- Burada URL varsa bir rota tanımlıyoruz http://localhost:3000/Node tarayıcıda seçilir. Rotaya, Düğüm URL'sine göz attığımızda çağrılacak bir geri çağırma işlevi ekliyoruz. İşlevin 2 parametresi vardır.
- Kullanacağımız ana parametre, istemciye bilgi göndermek için kullanılabilecek 'res' parametresidir.
- 'Req' parametresi, yapılan istek hakkında bilgi içerir. Bazen yapılan isteğin bir parçası olarak ek parametreler gönderilebilir ve dolayısıyla 'req' parametresi gönderilen ek parametreleri bulmak için kullanılabilir.
- Düğüm rotası seçilirse, “Düğümde Eğitim” dizesini istemciye geri göndermek için send işlevini kullanıyoruz.
- Burada URL varsa bir rota tanımlıyoruz http://localhost:3000/Angular tarayıcıda seçilir. Rotaya, Angular URL'ye göz attığımızda çağrılacak bir geri çağırma işlevi ekliyoruz.
- Angular rota seçilirse, “Angular üzerinde Eğitim” dizesini istemciye geri göndermek için send fonksiyonunu kullanıyoruz.
- Bu, uygulamanın rotasına göz atıldığında seçilen varsayılan rotadır – http://localhost:3000. Varsayılan rota seçildiğinde istemciye “Guru99 Derslerine Hoş Geldiniz” mesajı gönderilecektir.
Komut başarıyla yürütülürse, kodunuzu tarayıcıda çalıştırdığınızda aşağıdaki Çıktı gösterilecektir.
Çıktı:
Çıktıdan,
- Bağlantı noktası 3000'deki localhost'un URL'sine göz attığımızda, sayfada 'Guru99 Derslerine Hoş Geldiniz' dizesini göreceğinizi açıkça görebilirsiniz.
- Çünkü kodumuzda varsayılan URL’mizin bu mesajı göstereceğinden bahsetmiştik.
Çıktıdan,
- URL'nin /Node olarak değiştirilmiş olması durumunda, ilgili Node yolunun seçileceğini ve "Düğümde Öğretici" dizisinin görüntüleneceğini görebilirsiniz.
Çıktıdan,
- URL'nin /Angular olarak değiştirilmesi durumunda ilgili Node yolunun seçileceğini ve "Tutorial On Angular" dizisinin görüntüleneceğini görebilirsiniz.
express.js kullanan örnek Web sunucusu
Yukarıdaki örneğimizde yönlendirmeye göre hangi çıktıyı göstereceğimize nasıl karar verebileceğimizi gördük. Bu tür bir yönlendirme, günümüz web uygulamalarının çoğunda kullanılan yöntemdir. Web sunucusunun diğer kısmı Node.js'deki şablonların kullanılmasıyla ilgilidir.
Hızlı, anında Node uygulamaları oluştururken kolay ve hızlı bir yol, uygulama için şablonlar kullanmaktır. Piyasada şablon oluşturmak için birçok çerçeve bulunmaktadır. Bizim durumumuzda şablonlama için yeşim çerçevesi örneğini ele alacağız.
Jade, Node Paket yöneticisi aracılığıyla yüklenir. Bu, komut satırında aşağıdaki satırı çalıştırarak yapılabilir
npm yeşim yükle
Yukarıdaki komut, Node paket yöneticisinden gerekli jade modüllerini indirmesini ve uygun şekilde kurmasını ister.
NOT: Node jade'in son sürümünde kullanımdan kaldırıldı. Bunun yerine pug kullanın.
Yeni kurduğumuz yeşim çerçevemizi kullanalım ve bazı temel şablonlar oluşturalım.
) 1 Adım İlk adım bir yeşim şablonu oluşturmaktır. index.jade adında bir dosya oluşturun ve aşağıdaki kodu ekleyin. Dosyayı "görünümler" klasöründe oluşturduğunuzdan emin olun
- Burada, bu şablon çağrıldığında sayfa başlığının aktarılan değere göre değişeceğini belirtiyoruz.
- Ayrıca başlık etiketindeki metnin, yeşim şablonunda iletilen metinle değiştirileceğini de belirtiyoruz.
var express=require('express'); var app=express(); app.set('view engine','jade'); app.get('/',function(req,res) { res.render('index', {title:'Guru99',message:'Welcome'}) }); var server=app.listen(3000,function() {});
Kod Açıklaması:
- Uygulamada belirtmeniz gereken ilk şey, şablonları oluşturmak için kullanılacak “görüntüleme motoru”dur. Şablonlarımızı render etmek için jade kullanacağımız için bunu buna göre belirtiyoruz.
- Render işlevi bir web sayfasını oluşturmak için kullanılır. Örneğimizde daha önce oluşturulan şablonu (index.jade) oluşturuyoruz.
- “title” ve “message” parametrelerine sırasıyla “Guru99” ve “Welcome” değerlerini aktarıyoruz. Bu değerler, index.jade şablonunda belirtilen 'title' ve 'message' parametreleriyle değiştirilecektir.
Komut başarıyla yürütülürse, kodunuzu tarayıcıda çalıştırdığınızda aşağıdaki Çıktı gösterilecektir.
Çıktı:
Çıktıdan,
- Sayfa başlığının “Guru99”, sayfa başlığının ise “Hoş Geldiniz” olarak ayarlandığını görüyoruz.
- Bunun nedeni node.js uygulamamızda çağrılan yeşim şablonudur.
ÖZET
- Ekspres çerçeve, Node.js uygulamalarını geliştirmek için kullanılan en yaygın çerçevedir. Ekspres çerçeve, node.js çerçevesinin üzerine inşa edilmiştir ve sunucu tabanlı uygulamaların hızlı bir şekilde geliştirilmesine yardımcı olur.
- Rotalar, yapılan isteğe bağlı olarak kullanıcıları web uygulamalarının farklı bölümlerine yönlendirmek için kullanılır. Her rotanın yanıtı, kullanıcıya neyin gösterilmesi gerektiğine bağlı olarak değişebilir.
- Şablonlar, içeriği verimli bir şekilde enjekte etmek için kullanılabilir. Jade, Node.js uygulamalarında kullanılan en popüler şablonlama motorlarından biridir.