Node.js, sunucu taraflı çalışan uygulamalar için geliştirilmiş bir runtime environment (çalışma ortamı)'dir. Dil olarak ise JavaScript'i kullanır.
Node.js Google V8 JavaScript motorunu kullanır. İçerisindeki kütüphaneler ile (ör:Express) tek başına sunucu görevini görür. Bu nedenle dünya üzerinde popüler ve popüleritesi giderek artmaktadır. Ayrcıa açık kaynaklıdır bu nedenle sürekli olarak geliştirilmektedir.
Node.js asenkron çalışması özelliği ile sunucu tarafında rakiplerine göre daha hızlıdır. Bunun yanı sıra yüksek veri aktarabilmesi ve yüksek ölçeklenebilirliği Node.js'in avantajlarındandır.
Şimdi Node.js'in ne olduğundan kısaca bahsettiğime göre nasıl kurulduğunu ve nasıl kullanabileceğinizden bahsedeyim.
yazmaktır. Son olarak Node için paket yükleyici yani npm (Node Package Manager)'i yüklemeniz gerekiyor. Bunun için de tekrar terminal ekranına:
komutunu yazıyoruz ve artık Linux için Node.js'i kurulumunu tamamlamış olduk, artık kullanabiliriz.
Eğer sürekli paket indirme işlemini gerçekleştirmek istemiyorsanız paketlerinizi global olarak kurabilirsiniz. Global olarak kurmak için '-g' ifadesini ekliyoruz yani global olarak bir paket indirmek istediğimizde komutumuz aşağıda ki gibi olmalıdır
şeklinde komutumuzu yazdıktan sonra paketimiz global olarak kuruluyor. Peki global olarak paket kurulduğunda ne oluyor? Bunun cevabı npm paket dosyalarını sistemde ki klasörüne indiriyor ve her projenizde tekrardan o paketi indirmenize gerek kalmıyor.
Eğer paketimizi local olarak kurmak istersek komut satırımız aşağıda ki gibi olmalıdır
Peki paketlerimizi local olarak kurduğumuzda ne farkediyor? Eğer paketlerimizi local olarak kurarsak npm paketi sizin üzerinde çalıştığınız klasöre kuruyor ve başka bir projede tekrar o paketi indirmeniz gerekiyor. Fakat local olarak kurmanızın şöyle bir avantajı var; taşınabilirliği arttırıyor. Mesela projenizi kişisel bilgisayarınızda hazırladınız ve başka bir cihazda çalıştırmak istiyorsunuz o zaman paketleri tek tek kurmak yerine local olarak kurulmuş paketleri tek bir komut ile taşıdığınız cihaza kurabiliyorsunuz.
Peki bu nasıl sağlanıyor? npm local olarak kurulan paketi 'package.json' dosyasına kaydediyor ve başka bir cihaza taşındığı zaman aşağıda ki komut ile package.json dosyasına kaydedilen paketleri kuruyor.
Node.js'i kullanmak için bir klasör oluşturalım ve kod editörümüzü açalım. İlk önce 'package.json' adında bir json dosyası oluşturmamız gerekmektedir, dosya adının package olmasına dikkat etmenizi tavsiye ederim. Package.json dosyamızın içeriğini basit bir şekilde aşağıda ki gibi doldurmanız gerekmektedir. İlk önce süslü parantezler açılır ve bu süslü parantezlerin içerisine projemize vermek istediğimiz özellikleri yazıyoruz.
Bu şekilde package.json dosyamızı oluşturmamız gerekmektedir. Burada dikkat etmemiz gereken şey projemizin özelliklerini tırnaklar içerisinde belirtmemiz gerekmektedir. Projemizin versiyonunu adını, kimin yazdığını bu package.json dosyasına kaydedebilirsiniz.
Yukarıda ki script özelliği örnek olarak eğer projemizi başlatmak istersek 'node serverdosyasi.js' yazmak yerine sadece 'npm start' yazdığımız zaman projemiz başlatma görevini görüyor.
Eğer paket kurduğumuz zaman local olarak kurarsak package.json dosyasına 'dependencies' şeklinde kaydedildiğiniz görürsünüz.
Package.json dosyamızı oluşturduğumuza göre, artık server dosyamızı oluşturabiliriz.
Server dosyamızı bir JavaScript dosyası şeklinde oluşturmamız gerekmektedir. Genellikle 'app' veya 'server' adında oluşturulur. JavaScript dosyamızı oluşturduktan sonra serverimizi yapılandırmaya başlayabiliriz. Server dosyamızda serverimizi yapılandırırız ve adres yönetimini yani istenilen adrese göre bir dosya gösterme işlemini yapabiliriz.
Bu yazımda sizlere temel olarak bir server dosyası oluşturmayı öğretmeyeceğim. Bunun yerine daha hızlı bir şekilde bu işlemleri gerçekleştirmenizi sağlayacak olan 'Express' kütüphanesi ile server oluşturmayı ayrıca dosya yönetimi için ise 'fs' kütüphanesinden bahsedeceğim. Ayrıca sürekli olarak npm start yazmamanız için 'nodemon' kütüphanesini kullanacağız, bu kütüphane sürekli olarak değişiklik yaptığınız zaman npm start komutunu yazmamanızı sağlıyor. Nodemon kütüphanesi ile sadece bir kere npm start yapıyoruz ve artık sürekli olarak server dosyasını başlatmamız gerekmiyor. Bunlar için terminal ekranımıza
komutlarını yazıyoruz ve projemize dahil ediyoruz. Ardından ise server dosyamızda bu kütüphaneleri çağırmamız gerekiyor. Bunlar için ise
şeklinde yazıyoruz. Burada gördüğünüz gibi app adında bir değişken daha oluşturdum. Bunun sebebi ise işlemlerimizi app adı üzerinde Express ile yapacağız.
Şimdi index.html adında bir html dosyası oluşturalım ve bunun içeriğini rastgele bir şekilde dolduralım. Ardından ise server dosyamıza gelip aşağıda ki yazıları ekleyelim.
şeklinde dolduruyoruz.
Yukarıda gördüğünüz app.get fonksiyonu ile serverimize gelen isteği yani adres çubuğuna ne yazılırsa ona göre bir işlem yapmamızı sağlıyor. fs.readFile fonksiyonu ise belirttiğimiz dosyayı bize göstermeye yarıyor. Son olarak app.listen() fonksiyonu ise serverimizin kaçıncı portta çalışmasını istiyorsak onu belirlememize yarıyor.
Şimdi; package.json dosyamızı oluşturduk, server dosyamızı oluşturduk ve index adında bir html dosyası oluşturduk. Artık terminale 'npm start' yazdıktan sonra sunucumuz hazır ve adres çubuğuna
yazdığımız zaman bize index.html dosyasının geldiğini göreceksiniz.
Son olarak belirtmem gereken bir husus var; eğer nodemon kütüphanesini kullanacak isek package.json dosyamızda ki script bölümünde yazan 'node dosyaadi.js' kısmını 'nodemon dosyaadi.js' şeklinde değiştirmeniz gerekmekte. Eğer npm start komutunu kullanmak istemiyorsak, nodemon dosyaadi.js komutunu yazdığımız zaman aynı sonucu alırız.
Sizlere benim ilk başlarda yaşadığım bir sorunu anlatmak istiyorum. Yazdığım projeyi tablet gibi diğer cihazlardan localhost:port yazarak erişim sağlayamıyorsunuz. Bu durumu şöyle anlatayım; mesela bilgisayarınızda projenizi hazırladınız ve telefonunuzda denemek istiyorsunuz, işte bu durumda telefon tarayıcınıza localhost yazarak projeye erişim sağlayamıyorsunuz. Bunun için bilgisayarınızın ip adresini öğrenmeniz gerekmekte. Ip adrsinizi öğrendikten sonra ise tarayıcımızın adres çubuğuna
şeklinde yazmanız gerekiyor. Bu sayede bilgisayarınızdan yazdığınız node projesine telefon veya tablet gibi diğer cihazlardan erişim sağlayabiliyorsunuz.
Yukarıda yazan her şeyi bir projede topladım ve bu projeyi inceleyerek node.js'in çalışma mantığını anlayabilirsiniz.
Projede yukarıda anlattığım bilgilerden başka hiçbir şey bulunmuyor fakat siz bu kodları birazcık kurcalayarak daha iyi kavrayabilirsiniz.
Projeye Github adresimden ulaşabilirsiniz linkini aşağıya bırakıyorum.
Dosyaları Github adresimden indirebilir veya terminale aşağıda ki komutu yazabilirsiniz
komutunu yazdıktan sonra dosyalar bulunduğunuz dizine inecektir.
Dosyaları indirdikten sonra yapmanız gereken şey terminal ekranına 'npm start' ve tarayıcınızda adres çubuğuna 'localhost:4000' yazmak.
Kaynaklar
Wikipedia
Bu yazımda sizlere Node.js nedir onu açıklamaya çalıştım ve sizler için bir örnek hazırladım. Umarım açıklayıcı olabilmişimdir. İyi günler!.
Node.js Google V8 JavaScript motorunu kullanır. İçerisindeki kütüphaneler ile (ör:Express) tek başına sunucu görevini görür. Bu nedenle dünya üzerinde popüler ve popüleritesi giderek artmaktadır. Ayrcıa açık kaynaklıdır bu nedenle sürekli olarak geliştirilmektedir.
Node.js asenkron çalışması özelliği ile sunucu tarafında rakiplerine göre daha hızlıdır. Bunun yanı sıra yüksek veri aktarabilmesi ve yüksek ölçeklenebilirliği Node.js'in avantajlarındandır.
Şimdi Node.js'in ne olduğundan kısaca bahsettiğime göre nasıl kurulduğunu ve nasıl kullanabileceğinizden bahsedeyim.
Kurulum
Windows
Windows'ta Node.js kurulumu için Node.js'in kendi web sitesinden 'LTS' sürümünden kendi sistem mimarinize göre olan '.msi' uzantılı dosyasını indirmeniz gerekmektedir. İndirdikten sonra normal setup işlemlerini gerçekleştirdikten sonra kurulum tamamlanmış olacaktır.Linux
Linux için kurulum ise terminalden yapılabilir seviyededir. Yapmanız gereken tek şey; terminal ekranına:$ sudo apt-get install nodejs
yazmaktır. Son olarak Node için paket yükleyici yani npm (Node Package Manager)'i yüklemeniz gerekiyor. Bunun için de tekrar terminal ekranına:
$ sudo apt-get install npm
komutunu yazıyoruz ve artık Linux için Node.js'i kurulumunu tamamlamış olduk, artık kullanabiliriz.
Paket Kurulumu
Node için paket kurulumu işlemine geçmek istiyorum. Node.js'te paket kurmak için 'npm install paketadi' komutunu kullanıyoruz. Paketlerimizi iki türlü kurabiliriz; global ve local olarak paketlerimizi kuruyoruz.Eğer sürekli paket indirme işlemini gerçekleştirmek istemiyorsanız paketlerinizi global olarak kurabilirsiniz. Global olarak kurmak için '-g' ifadesini ekliyoruz yani global olarak bir paket indirmek istediğimizde komutumuz aşağıda ki gibi olmalıdır
$ npm install -g paketadi
şeklinde komutumuzu yazdıktan sonra paketimiz global olarak kuruluyor. Peki global olarak paket kurulduğunda ne oluyor? Bunun cevabı npm paket dosyalarını sistemde ki klasörüne indiriyor ve her projenizde tekrardan o paketi indirmenize gerek kalmıyor.
Eğer paketimizi local olarak kurmak istersek komut satırımız aşağıda ki gibi olmalıdır
$ npm install --save paketadi
Peki paketlerimizi local olarak kurduğumuzda ne farkediyor? Eğer paketlerimizi local olarak kurarsak npm paketi sizin üzerinde çalıştığınız klasöre kuruyor ve başka bir projede tekrar o paketi indirmeniz gerekiyor. Fakat local olarak kurmanızın şöyle bir avantajı var; taşınabilirliği arttırıyor. Mesela projenizi kişisel bilgisayarınızda hazırladınız ve başka bir cihazda çalıştırmak istiyorsunuz o zaman paketleri tek tek kurmak yerine local olarak kurulmuş paketleri tek bir komut ile taşıdığınız cihaza kurabiliyorsunuz.
Peki bu nasıl sağlanıyor? npm local olarak kurulan paketi 'package.json' dosyasına kaydediyor ve başka bir cihaza taşındığı zaman aşağıda ki komut ile package.json dosyasına kaydedilen paketleri kuruyor.
$ npm install
Kullanım
Node.js'i kullanmak için bir klasör oluşturalım ve kod editörümüzü açalım. İlk önce 'package.json' adında bir json dosyası oluşturmamız gerekmektedir, dosya adının package olmasına dikkat etmenizi tavsiye ederim. Package.json dosyamızın içeriğini basit bir şekilde aşağıda ki gibi doldurmanız gerekmektedir. İlk önce süslü parantezler açılır ve bu süslü parantezlerin içerisine projemize vermek istediğimiz özellikleri yazıyoruz.
{
"name":"Proje-Adi",
"version":"1.0.0",
"script":{
"start":"node serverdosyasi.js"
}
}
"name":"Proje-Adi",
"version":"1.0.0",
"script":{
"start":"node serverdosyasi.js"
}
}
Bu şekilde package.json dosyamızı oluşturmamız gerekmektedir. Burada dikkat etmemiz gereken şey projemizin özelliklerini tırnaklar içerisinde belirtmemiz gerekmektedir. Projemizin versiyonunu adını, kimin yazdığını bu package.json dosyasına kaydedebilirsiniz.
Yukarıda ki script özelliği örnek olarak eğer projemizi başlatmak istersek 'node serverdosyasi.js' yazmak yerine sadece 'npm start' yazdığımız zaman projemiz başlatma görevini görüyor.
Eğer paket kurduğumuz zaman local olarak kurarsak package.json dosyasına 'dependencies' şeklinde kaydedildiğiniz görürsünüz.
Package.json dosyamızı oluşturduğumuza göre, artık server dosyamızı oluşturabiliriz.
Server dosyamızı bir JavaScript dosyası şeklinde oluşturmamız gerekmektedir. Genellikle 'app' veya 'server' adında oluşturulur. JavaScript dosyamızı oluşturduktan sonra serverimizi yapılandırmaya başlayabiliriz. Server dosyamızda serverimizi yapılandırırız ve adres yönetimini yani istenilen adrese göre bir dosya gösterme işlemini yapabiliriz.
Bu yazımda sizlere temel olarak bir server dosyası oluşturmayı öğretmeyeceğim. Bunun yerine daha hızlı bir şekilde bu işlemleri gerçekleştirmenizi sağlayacak olan 'Express' kütüphanesi ile server oluşturmayı ayrıca dosya yönetimi için ise 'fs' kütüphanesinden bahsedeceğim. Ayrıca sürekli olarak npm start yazmamanız için 'nodemon' kütüphanesini kullanacağız, bu kütüphane sürekli olarak değişiklik yaptığınız zaman npm start komutunu yazmamanızı sağlıyor. Nodemon kütüphanesi ile sadece bir kere npm start yapıyoruz ve artık sürekli olarak server dosyasını başlatmamız gerekmiyor. Bunlar için terminal ekranımıza
$ npm install --save express
$ npm install --save nodemon
$ npm install --save nodemon
komutlarını yazıyoruz ve projemize dahil ediyoruz. Ardından ise server dosyamızda bu kütüphaneleri çağırmamız gerekiyor. Bunlar için ise
const fs = require('fs');
const express = require('express');
const app = express();
const express = require('express');
const app = express();
şeklinde yazıyoruz. Burada gördüğünüz gibi app adında bir değişken daha oluşturdum. Bunun sebebi ise işlemlerimizi app adı üzerinde Express ile yapacağız.
Şimdi index.html adında bir html dosyası oluşturalım ve bunun içeriğini rastgele bir şekilde dolduralım. Ardından ise server dosyamıza gelip aşağıda ki yazıları ekleyelim.
app.get("/",function(req,res){
fs.readFile("index.html",function(err,data){
res.write(data);
res.end("");
});
});
app.listen("4000");
fs.readFile("index.html",function(err,data){
res.write(data);
res.end("");
});
});
app.listen("4000");
şeklinde dolduruyoruz.
Yukarıda gördüğünüz app.get fonksiyonu ile serverimize gelen isteği yani adres çubuğuna ne yazılırsa ona göre bir işlem yapmamızı sağlıyor. fs.readFile fonksiyonu ise belirttiğimiz dosyayı bize göstermeye yarıyor. Son olarak app.listen() fonksiyonu ise serverimizin kaçıncı portta çalışmasını istiyorsak onu belirlememize yarıyor.
Şimdi; package.json dosyamızı oluşturduk, server dosyamızı oluşturduk ve index adında bir html dosyası oluşturduk. Artık terminale 'npm start' yazdıktan sonra sunucumuz hazır ve adres çubuğuna
localhost:4000
yazdığımız zaman bize index.html dosyasının geldiğini göreceksiniz.
Son olarak belirtmem gereken bir husus var; eğer nodemon kütüphanesini kullanacak isek package.json dosyamızda ki script bölümünde yazan 'node dosyaadi.js' kısmını 'nodemon dosyaadi.js' şeklinde değiştirmeniz gerekmekte. Eğer npm start komutunu kullanmak istemiyorsak, nodemon dosyaadi.js komutunu yazdığımız zaman aynı sonucu alırız.
Sizlere benim ilk başlarda yaşadığım bir sorunu anlatmak istiyorum. Yazdığım projeyi tablet gibi diğer cihazlardan localhost:port yazarak erişim sağlayamıyorsunuz. Bu durumu şöyle anlatayım; mesela bilgisayarınızda projenizi hazırladınız ve telefonunuzda denemek istiyorsunuz, işte bu durumda telefon tarayıcınıza localhost yazarak projeye erişim sağlayamıyorsunuz. Bunun için bilgisayarınızın ip adresini öğrenmeniz gerekmekte. Ip adrsinizi öğrendikten sonra ise tarayıcımızın adres çubuğuna
http://ipadresiniz:portsayisi
şeklinde yazmanız gerekiyor. Bu sayede bilgisayarınızdan yazdığınız node projesine telefon veya tablet gibi diğer cihazlardan erişim sağlayabiliyorsunuz.
Örnek
Sizlere Node.js'in nasıl çalıştığını parçalar halinde anlatmaya çalıştım fakat bunların hepsini bir bütün olarak görüp çalıştırmanız sizler için daha faydalı olabileceğini düşündüm.Yukarıda yazan her şeyi bir projede topladım ve bu projeyi inceleyerek node.js'in çalışma mantığını anlayabilirsiniz.
Projede yukarıda anlattığım bilgilerden başka hiçbir şey bulunmuyor fakat siz bu kodları birazcık kurcalayarak daha iyi kavrayabilirsiniz.
Projeye Github adresimden ulaşabilirsiniz linkini aşağıya bırakıyorum.
Dosyaları Github adresimden indirebilir veya terminale aşağıda ki komutu yazabilirsiniz
git clone https://github.com/Enes-Kasapoglu/KilavuzKod-Node-Example.git
komutunu yazdıktan sonra dosyalar bulunduğunuz dizine inecektir.
Dosyaları indirdikten sonra yapmanız gereken şey terminal ekranına 'npm start' ve tarayıcınızda adres çubuğuna 'localhost:4000' yazmak.
Kaynaklar
Wikipedia
Bu yazımda sizlere Node.js nedir onu açıklamaya çalıştım ve sizler için bir örnek hazırladım. Umarım açıklayıcı olabilmişimdir. İyi günler!.
Hiç yorum yok:
Yorum Gönder