← Back to list

Ders 1: Node.js Nedir?(Uzun Özet) (I 😍 Node.js)

Piyasaya çıktığından beri çok ilgi toplayan hali hazırda yaklaşık 11 milyon javascript geliştiricisi tarafından kullanılan, açık kaynak…

Alper Reha YAZGAN · 2019-08-03 23:17 · 178 claps · 4.5 min read
#nodejs #javascript #server-side-rendering #socketio #npm
Open on Medium ↗
Wiki topics: 🌐 · Web Development 🔒 · Cybersecurity

Ders 1: Node.js Nedir?(Uzun Özet) (I 😍 Node.js)

NODE.JS

NODE.JS

Piyasaya çıktığından beri çok ilgi toplayan hali hazırda yaklaşık 11 milyon javascript geliştiricisi tarafından kullanılan, açık kaynak olması ve yazdığınız küçük modülleri bütün dünya ile paylaşabileceğiniz hazırda 73 bin farklı modülün olduğu bir kütüphaneyle ve tüm asaletiyle bir NODE.JS.

Peki bu açık kaynak node.js nedir ve yukarıda bahsettiğimiz modüller kütüphanesi de nedir onlardan bahsedelim.

Javascript’e aşinaysanız ve az çok kodlamasını biliyorsanız şunu biliyorsunuzdur ki siz kodu yazarsınız ve bunu main.js gibi bir şekilde html script tagı içine kaydettikten sonra o html dosyasını açtığınızda örneğin bir butona tıklanması gibi bir olay için yazdığınız kod; kullanıcı o butona bastığında gerçekleştirecektir.

Bu gerçekleşen olaya dışarıdan baktığımızda ise siz öncesinde kodu yazdınız ve dosya olarak kaydettiniz. Ardından kullanıcı bu dosyayı açtığında ise ordaki kod hiçbir aracıya veya onda değişiklik yapabilecek(derleyecek) yapıya girmeden direkt kullanıcının web sayfasında ortaya çıkmıştır. Ayrıca orada bastğı butondan sadece kendisinin haberi olacaktır.

İşte bu yukarıdaki yapıya baktığımızda ve örneğin twitter gibi bir sayfa kurmak istediğinizde şunu görebilirsiniz. Javascript herhangi bir derleyiciye girmemektedir(Yani siz twitter login ekranına bilgilerinizi girdikten sonra profile gelince sizin bilgileriniz yazarken; başkası kendi bilgileri ile girdiğinde ise onun bilgileri yazacaktır. Bunu sağlamak için ise sayfa sizin önünüze gelmeden önce bir yapıdan(örneğin server tarafı render’ları) geçip orada derlenecektir ve ardından size gelecektir. Ama işte bu yapıyı biz javascriptte göremiyoruz. Peki neden görmek istiyoruz? Çünkü javascript günümüzde bütün bilgisayar telefon ve tabletlerin %90'nından fazlasında çalışan bir yapı ve sizin buna yaptığınız bir derleyici evrensel nitelikte olacaktır.

İşte tam da yukarıda ki soruna cevap olarak node.js doğmuştur. Node.js yazdığınız kodu server tarafında render(derleyebilmek) edebilmek gibi bir özelliği ile bu sorunu çözmektedir. Ayrıca bütün bu işlemleri asenkron bir şekilde yaparak gelen istekleri alıp onları bloklamadan; işleri bittiğinde kaldığı yerden devam edip verilen task(görevi) bitiren bir server yapısı sunar bize.

Resim Kaynağı Adrian Mejia

Resim Kaynağı Adrian Mejia

(Asenkron ve senkron ayrımını şöyle anlatabilirim: Örneğin siz 5 satırlık bir kod yazdınız ve 3. satırında url’den veri çekeceksiniz. Senkron bir işleyici kullanıyorsanız yukarıdan aşağıya kodları çalıştıracaktır ve 3. satıra geldiğinde urlden veri çekmeyi bekleyecektir. Eğer url’den veri çekmek 10 saniye sürse bile onu bekleyecek ve bir alt satıra, o satırda işlem bitmeden inmeyecektir. Asenkronda ise o 3. satıra gelip veri çekme işlemini başlatacak ardından ondan veri gelene kadar 4. — 5. satıra devam edecek ve ana işlemi bloklamadan devam edecektir. Ne zaman ki url’den veri gelecek o zaman 3. satırda ki kodu çalıştırarak kaldığı yerden devam edecektir. -Yukarıdaki resim işleyiş hakkında bilgi vermektedir-)

Derlenebilmesi, asenkron olması ile en güzel üçüncü özelliği ise önceden de söylediğim gibi bunları bize bir server olarak verebilmesidir. Yani siz node.js’i indirip onu çalıştırdığınızda localhostta(kendi makinenizde) çalıştırabilir ve belirlediğiniz porttan sanki apache varmış gibi direkt ip’nizi ve portunuzu yazarak bütün bunlara bir kendi özelliği olan server yapısı dahilinde ulaşabilirsiniz.

Bütün bu anlattıklarımla ilgili kısa bir hello world! uygulaması yapalım. O zaman demek istediklerim açıkça belli olacaktır.

1- Öncelikle BURAYA TIKLAYARAK Node.js’in uygun bir sürümünü kendi işletim sisteminize indiriniz.

2- Ardından (ben bu örnek için masaüstünde myApp adında bir klasör oluşturup oraya uygulamamızı kuracağım.) terminal ekranını açıp şunları yazalım.

cd desktop
mkdir myApp
cd myApp

3- Proje dizinimizde artık indirdiğimiz node.js’i başlatabiliriz.

npm init     #YAZIYORUZ ve proje bilgilerimizi giriyoruz.
npm install --save express   #Server kurulumu kolaylaştıran bir araç

4- npm install ile bizim serverimizi kurmamızı kolaylaştıran express modülünü de indirdik ve artık bulunduğumuz dizinde bir server.js adında bir javascript dosyası ve index.html adında bir html dosyası oluşturuyoruz. Bu server.js dosyasının içine ise aşağıdaki kodları yazıyoruz.

[embed]

5- index.html ve server.js’i kaydettikten sonra terminal ekranını açıp:

node server.js

yazıyoruz. Ardından terminal ekranında “Listening on 8000 port now…” şeklinde bir mesaj gördüğümüz anda tarayıcımızı açıp url kısmına:

localhost:8000

yazıyoruz. VEEEEE oluşturmuş olduğunuz html dosyasını görebilirsiniz. Böylece ilk ayağa kalkmış ve çalışmış bir uygulamayı gerçekleştirmiş oldunuz Tebrikler🔥 🔥. Bu işlemin iyi yanı çok minimal seviyede kod ve yapı ile bir server ayağa kaldırmış oldunuz. Ayrıca biz bunu kendi faydamıza kullanabiliriz. Nasıl mı?

Temel olarak Node.js ile bir server kurmak bu kadar basittir. Yalnız böyle bir serveri daha geliştirmeden kullanmak doğru olmaz(Çünkü basit bir request-response işlemi yapılmıştır.). İşte tam olarak bu noktada müthiş bir açık kaynak kütüphanesi devreye giriyor. (💪🏻 👉🏻NPM Library 👈🏻) Bu kütüphanenin içerisinde ne ararsanız var diyebilirim(Haberleşmeden Karekod üretecine, Şifreleyiciden İndirme Asistanına kadar çok fazla yararlı modüller -Şu an hazırda 73 bin modül tanımlıdır.-). Asıl olarak node.js’in işlevselliği bu noktada başlamaktadır. Size birkaç örnek uygulama ve modülden bahsetmek istiyorum.

Agar.io ve .io türevleri online oyunların çoğu:

Node.js temeli ile oluşturulmuş web tabanlı bir online oyundur. En büyük artısı node.js’den gelen muazzam derece hızlı bir veri alış-veriş sisteminin olmasıdır. Nasıl mı? Aslında siz agar.io oynarken saniyede 60 defa Socket.io modülü ile(İleriki yazılarımda bu modül ile ilgili uygulamalar yapacağım.) servere kullanıcının yani oyun oynayan sizin; konum bilgilerini bölünmüş mü, bölünmemiş mi, lider tablosu durumu gibi bilgileri gönderip cevap olarakta yakınınızda bulunan yemleri; pozisyonları, rakip oyuncu yeri, boyut ve hareketleri gibi bilgileri muazzam derece hızlı bir şekilde aktarabilmektedir. Biz ise oyunun sonucu olarak bunu hissetmeyip oynamaktayız ama arka plan göründüğü gibi yavaş değildir.

LinkedIn

Node.js’in bu hızı sayesinde (KAYNAK) Linked-in 30 server kullanması gereken yapıyı yalnızca 3 server ile halledebilmiştir. Ayrıca maliyet kazançları gibi artıları yüzünden birçok microserverisinde node.js temelli yapılar kullanmaktadır.

Hali hazırda çoğu web sitesi node.js’in belirli modüllerini kullanmaktadır. Ben ise bu iki örneği söylemeyi yeterli buluyorum.

Şimdi size sizin ilginizi çekecek birkaç modül bırakıyorum.

1- Socket.io

2- Qr-code

3- node-fetch (Yazılımın olmazsa olması Client tarafı API’ler için bir modül)

4- Request (Sunucu tarafında veri çekme işlemleri yapan modül)

Sonuç:

Yukarıda anlattıklarımı toparlayacak olursam. Node.js temel olarak sunucu tarafında çalışan javascripttir. Javascript temelli olması sebebiyle çok dinamik ve hızlı yapısı vardır. Sonradan eklenebilen kütüphaneler ile işlevselliği artırılabilerek ürün seviyesindeki kodlarda rahatlıkla kullanılabilmektedir. Hem back-end hem front-end’i birlikte bulundurduğu için full-stack çalışmalarda çok önemli rol oynamaktadır.(Server maliyeti azaltma ve yüksek verimlilik gibi)

Siz de bu basit yapıları kullanarak büyük projeler oluşturabileceğinizi söylemek istiyorum. Güzel bir fikir ve doğru araçlar ile başarılı ürünler ortaya çıkarabilirsiniz. Bu Node-js başlangıç yazımda temel olarak node.js nedir onu anlattım. İleri ki derslerde modüller ve eklentiler ile kod ağırlıklı uygulamalar yapacağız.

Görüşmek üzere.

Sağlıcakla kalın…

Alper Reha YAZGAN


메타데이터
post_id
aedbab0dfa58
slug
ders-1-node-js-nedir-uzun-özet-i-node-js-aedbab0dfa58
url
https://medium.com/@alperreha/ders-1-node-js-nedir-uzun-%C3%B6zet-i-node-js-aedbab0dfa58
canonical_url
https://medium.com/@alperreha/ders-1-node-js-nedir-uzun-%C3%B6zet-i-node-js-aedbab0dfa58
author_url
https://medium.com/@alperreha
status
ok
fetched_at
2026-07-29 14:15:06