Node.js Nedir? Node.js ile web sunucusu yapalım(AR-GE) //Easyly

BufGix

Uzman üye
7 Ağu 2015
1,089
2
Phobos/Space
Node.js, JavaSctipt ile server side uygulamalar yazabileceğimiz, Joyent tarafından 2009 yılında geliştirilmeye başlanmış bir Javascript Runtime platformudur. V8 denilen javascript motoru üzerinde çalışır. V8, Google tarafından geliştirilen, Chrome web browserlarının da üzerinde çalıştığı C, C++ ve javascript dilleri ile kodlanan bir enginedir. Tek amacı javascript kodunu makine koduna çevirmektir. Kesinlikle çok performanslıdır.



Node.js günümuzde oldukca yaygin bir platformdur. Bunun kanıtı ise asağıdaki tanıdık web sitelerinin hepsi node.js kullanmasıdır.

> PayPal
> NetFlix
> Uber
> Linkedln
> Ebay
> NASA

Kaynak : https://thinkmobiles.com/blog/node-js-app-examples/
Ve daha bircokları Node.js ile serverlarılını yapilandırmaktadır.

Node.js'nin en buyuk atrılarından biri ise JavaScript'in sağladığı bloklanmayan(non-blocking) yapisina sahip olmasıdır.




Nedir bu non-blocking yapısı:

Programlama ile ilgilenen bazi arkadaşlar bilirler, Bir I/O işlemi yaptiğınızda (mesela bir dosya okuma işlemi) okuyacak kodu yazdiğınız yer geldiğinde programlama dili okuma işlemi için sizi durdurur(Extra Threadlarla uğraşmazsanız). Burada siz bloklanmış olursunuz. Ama non-blocking yapısını destekleyen dillerde okuma işlemini arkaplanda yapar ve size daha sonradan haber verir. Bu işlem Node.js de callback fonksyonlarının temel mantığını açıklar.

Hadi simdi biz de bir kaç tane ornek yaparak Node.js yi anlamaya çalışalım.

Oncelikle yaptığımız işlemleri anlamak icin temel JavaScript syntaxına sahip olmanız gerekmekte

----BASLAYALIM---
Node.js yi oncelikle kuralım. Verdiğim linkten Node.js'nın nasil kurulduğuna bakabilirsiniz.
https://gelecegiyazanlar.turkcell.c...1-node.js/node.jsin-windows-uzerinde-kurulumu

Daha sonra 'server.js' isminde bir .js dosyası oluştralım ve kod yazmaya başlayalım.

Gerekli modulu bir nevî import etmemiz gerekmekte.
Kod:
[FONT="Courier New"]var http = require('http');[/FONT]

Http modulu, Node.js'nin temel http protokollerini kontrol etmemizi saglayan yapıdır. Bu modül ile server oluşturmak oldukça basittir.

Kod:
[FONT="Courier New"]var http = require('http');
var server = http.createServer(function (req,res){
	res.write('Merhaba Node.js');
	res.end()
	
}).listen(8000)
[/FONT]

Kodlari açıklayalım:
* createServer() ile http modulunde yer alan standart server dinleyicisini calıştırıyoruz. createServer() methodu parametre olarak bir callback fonksyonuna ihtiyaç duyar. Yani createServer() islemi bittiğinde hangi fonksyonun çalişmasi gerektiğini soyleriz. Gorüldüğü gibi callback fonksyonu iki parametre alir req ve res;
req(request): Servera baglanan clientler(orn: web browserlar), bağlanırken sunucuya bir istek gonderir. Bu istek req parametresinde tutulur. req parametresinin içinde bizim kulanabileceğimiz bir cok değisken vardir. Ornek olarak, baglanan browser in user-agent'i gibi.
res(response): Servera baglanan clientlere gonderecegimiz baglanti objesi bunun içinde saklidir.

* res.write(), kullanıcıya geri dönüt yapmamızı sağlayan methodtur.
* res.end() ile geri dönüt (response) işlemini kapatiriz.
* .listen() ile hangi portu kullanacagımızı belirtiriz.

Simdi bu kodlari kaydedelim ve:
Kod:
[FONT="Courier New"]node server.js[/FONT]
ile çalıştıralım.

Web Browserinizda 127.0.0.1:8000 ' e girelim.



Web serverimiz gayet güzel bir sekilde çalışıyor.

Kodumuzda birkaç değişiklik yapalim.
Kod:
 [FONT="Courier New"]var server = http.createServer(function (req,res){
	if (req.url == '/merhaba') {
		res.write('Merhabalar!');
                res.end();
	}
	else {
		res.write('Merhaba Node.js');
	}

	
}).listen(8000)[/FONT]

Goruldüğü gibi kodumuza bir koşul ifadesi ekledik. Buradaki req.url, gelen bağlantının hangi url adresinden geldiğini tutar.

Simdi bir test edelim.


Gördüğü gibi Node.js ile bir web server kurmak bu kadar kolay.

Tabikii yazdığımız seyler bir web sitesi tadında değil. Ben amacim Node.js öğrenmeniz için sizi teşvik etmektir.

Kaynak:
https://www.w3schools.com/nodejs/nodejs_http.asp
Node.js Nedir? – Bazıları Hayal Eder Bazıları Yapar – Bora Kaşmer – www.borakasmer.com
http://www.wiki-zero.com/wiki/tr/Node.js

 
Son düzenleme:

RedBuls81

Üye
26 Mar 2018
67
0
###
Node.js çok duydum.Ancak server yapımını burda gördüm.Programlama işleri her zaman merak ve ilgi konusu ve malzemesi bol bir dunya oldugundan çok uğraştırıyor beni.Pişmanmıyım? Asl****onu anlatımı sade acık anlaşılır.Vaktim olguğu gibi atılıcam bu programlama diline :)
 

Phoique 7

Katılımcı Üye
14 Mar 2017
505
1
Manisa
Eline sağlık. @Phoique 7 incelersin kanki.
İnceledim kanka. Sonunda forumda ilk defa nodejs ile ilgili konu gördüm desem yeridir. Elinize sağlık nodejs de saf nodejs kodu yazmak yerine express kullanmanız daha iyi olur ama bunları da bilirseniz çok iyi olur. Avantajları çoktur. Nodemon adlı nimet ise yazdığınız kodu tekrar sunucuyu kapatıp açmak derdinden kurtarıyor.
 

BufGix

Uzman üye
7 Ağu 2015
1,089
2
Phobos/Space
İnceledim kanka. Sonunda forumda ilk defa nodejs ile ilgili konu gördüm desem yeridir. Elinize sağlık nodejs de saf nodejs kodu yazmak yerine express kullanmanız daha iyi olur ama bunları da bilirseniz çok iyi olur. Avantajları çoktur. Nodemon adlı nimet ise yazdığınız kodu tekrar sunucuyu kapatıp açmak derdinden kurtarıyor.

Tabikii server sadece http modulu ile yazilmaz. Express i anlatacaktim lakin middle-ware , MVC, EJS girmek zorunda kalacaktim o yuzden ele almadim. Yakin zamanla almayi dusunuyorum ama.
Nodemonu da bilmiyordum kullanirim. Tesekkurler.
 

Phoique 7

Katılımcı Üye
14 Mar 2017
505
1
Manisa
Tabikii server sadece http modulu ile yazilmaz. Express i anlatacaktim lakin middle-ware , MVC, EJS girmek zorunda kalacaktim o yuzden ele almadim. Yakin zamanla almayi dusunuyorum ama.
Nodemonu da bilmiyordum kullanirim. Tesekkurler.
Ben ejs pek ısınamadım. Pug veya edge daha hoşuma gitti. Ama sabırsızlıkla beklediğimden emin olun nodejs konularınızı :)
 

BufGix

Uzman üye
7 Ağu 2015
1,089
2
Phobos/Space
Electron bu masaüstü uygulamaları javascript ile yazılan frameworkten mi bahsediyorsunuz?

Aynen öyle. Çok mantikli bir calişma işleyişi var. Web tasarimin esnekliği ile masaustu uygulamalar yazmak harika bir sey. Whatsapp, discord gibi buyuk uygulamalarin masaustu app leri electron ile yazilmis.

https://electronjs.org/apps

Buradan ne kadar buyuk olduğunu gorebilirsin.
 

Phoique 7

Katılımcı Üye
14 Mar 2017
505
1
Manisa
Aynen öyle. Çok mantikli bir calişma işleyişi var. Web tasarimin esnekliği ile masaustu uygulamalar yazmak harika bir sey. Whatsapp, discord gibi buyuk uygulamalarin masaustu app leri electron ile yazilmis.

https://electronjs.org/apps

Buradan ne kadar buyuk olduğunu gorebilirsin.
Kendisini duydum ama hiç oturupta neymiş bu diye derinlemesine araştırmadım. Nodejs benim öğrenme amacım web içindi. Kendisinden çokta memnunum eğer bir sorun olur ise pm atabilirsin belki soruna çözüm olurum :)
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.