Server oluşturarak NodeJS projelerimizi geliştirmeye başlayabiliriz. NodeJS bir JavaScript frameworküdür. NodeJS hakkında detaylı Türkçe belgelere buraya tıklayarak ulaşabilirsiniz.

Server oluşturmak için öncelikle “http” protokolünü dahil ediyoruz. Yani oluşturacağımız server bir http serverı olacak.

<pre style="background: rgb(238, 238, 238); border: 1px dashed rgb(153, 153, 153); line-height: 14px; outline: 0px; overflow: auto; padding: 5px; vertical-align: baseline; width: 592.016px;"><code style="background-attachment: initial; background-clip: initial; background-color: #f1f1f1; background-origin: initial; background-position: 0% 0%; background-repeat: no-repeat; background-size: initial; background: url("images/code.gif") left top no-repeat rgb(241, 241, 241); border-color: rgb(221, 221, 221); border-image: initial; border-style: dotted dotted dotted solid; border-width: 1px 1px 1px 10px; display: block; margin: 0px; outline: 0px; padding: 20px; vertical-align: baseline;">const http = require('http')

Bu kod bloğu ile “http” modülünü dahil ettik. Http’yi dahil ettikten sonra bir “hostname” yazıyoruz. Bu host name sunucumuzun çalışacağı url olacak.

<pre style="background: rgb(238, 238, 238); border: 1px dashed rgb(153, 153, 153); line-height: 14px; outline: 0px; overflow: auto; padding: 5px; vertical-align: baseline; width: 592.016px;"><code style="background-attachment: initial; background-clip: initial; background-color: #f1f1f1; background-origin: initial; background-position: 0% 0%; background-repeat: no-repeat; background-size: initial; background: url("images/code.gif") left top no-repeat rgb(241, 241, 241); border-color: rgb(221, 221, 221); border-image: initial; border-style: dotted dotted dotted solid; border-width: 1px 1px 1px 10px; display: block; margin: 0px; outline: 0px; padding: 20px; vertical-align: baseline;">const hostname = '127.0.0.1'

Ben buraya “127.0.0.1” girmeyi tercih ettim siz kendi isteğinize göre değiştirebilirsiniz. Daha sonra sunucumuzun çalışacağı port numarasını girmeliyiz. Bunu aşağıdaki kodlar ile yapıyoruz.

<pre style="background: rgb(238, 238, 238); border: 1px dashed rgb(153, 153, 153); line-height: 14px; outline: 0px; overflow: auto; padding: 5px; vertical-align: baseline; width: 592.016px;"><code style="background-attachment: initial; background-clip: initial; background-color: #f1f1f1; background-origin: initial; background-position: 0% 0%; background-repeat: no-repeat; background-size: initial; background: url("images/code.gif") left top no-repeat rgb(241, 241, 241); border-color: rgb(221, 221, 221); border-image: initial; border-style: dotted dotted dotted solid; border-width: 1px 1px 1px 10px; display: block; margin: 0px; outline: 0px; padding: 20px; vertical-align: baseline;">const port = 3000

Ben “3000” portunda çalıştırmayı seçtim. Buradaki portu hostname sonuna yazıyoruz. URL görünüm olarak

<pre style="background: rgb(238, 238, 238); border: 1px dashed rgb(153, 153, 153); line-height: 14px; outline: 0px; overflow: auto; padding: 5px; vertical-align: baseline; width: 592.016px;"><code style="background-attachment: initial; background-clip: initial; background-color: #f1f1f1; background-origin: initial; background-position: 0% 0%; background-repeat: no-repeat; background-size: initial; background: url("images/code.gif") left top no-repeat rgb(241, 241, 241); border-color: rgb(221, 221, 221); border-image: initial; border-style: dotted dotted dotted solid; border-width: 1px 1px 1px 10px; display: block; margin: 0px; outline: 0px; padding: 20px; vertical-align: baseline;">127.0.0.1:3000

şeklinde olacak. Sonrasında ise server oluşturmak için “createServer” metodunu kullanacağız.

<pre style="background: rgb(238, 238, 238); border: 1px dashed rgb(153, 153, 153); line-height: 14px; outline: 0px; overflow: auto; padding: 5px; vertical-align: baseline; width: 592.016px;"><code style="background-attachment: initial; background-clip: initial; background-color: #f1f1f1; background-origin: initial; background-position: 0% 0%; background-repeat: no-repeat; background-size: initial; background: url("images/code.gif") left top no-repeat rgb(241, 241, 241); border-color: rgb(221, 221, 221); border-image: initial; border-style: dotted dotted dotted solid; border-width: 1px 1px 1px 10px; display: block; margin: 0px; outline: 0px; padding: 20px; vertical-align: baseline;">const server = http.createServer((req, res) =>{
    if (req.url === '/'){
       return res.end('ana sayfa')
       <span>} else res.statusCode === 404 
        res.end('SAYFA BULUNAMADI')
    
})</span>

Yukarıdaki kodları açıklamamız gerekirse, öncelikle “createServer” metodunu kullanıyoruz.

Daha sonra “req” ve “res” isimli parametreler tanımlıyoruz. Buradaki “req” requests yani istek anlamında. Diğer parametre olan “res” ise response yani yanıt anlamında. Biz “req” ile istek yapıyoruz, “res” ile yanıt alıyoruz.

Sonrasında if-else yapısı kullanarak sayfaları tanımlıyoruz. Örnek vermek gerekirse;

<pre style="background: rgb(238, 238, 238); border: 1px dashed rgb(153, 153, 153); line-height: 14px; outline: 0px; overflow: auto; padding: 5px; vertical-align: baseline; width: 592.016px;"><code style="background-attachment: initial; background-clip: initial; background-color: #f1f1f1; background-origin: initial; background-position: 0% 0%; background-repeat: no-repeat; background-size: initial; background: url("images/code.gif") left top no-repeat rgb(241, 241, 241); border-color: rgb(221, 221, 221); border-image: initial; border-style: dotted dotted dotted solid; border-width: 1px 1px 1px 10px; display: block; margin: 0px; outline: 0px; padding: 20px; vertical-align: baseline;">if (req.url === '/'){
       return res.end('ana sayfa')
       }

bu kodlar yukarıda oluşturduğumuz serverın if-else yapısının ilk bloğu.

Kodları açıklamam gerekirse, eğer URL’e ‘/’ şeklinde istek yollarsak sunucu bize yanıt olarak ‘ana sayfa’ yazdıracak. Daha sonrasında

<pre style="background: rgb(238, 238, 238); border: 1px dashed rgb(153, 153, 153); line-height: 14px; outline: 0px; overflow: auto; padding: 5px; vertical-align: baseline; width: 592.016px;"><code style="background-attachment: initial; background-clip: initial; background-color: #f1f1f1; background-origin: initial; background-position: 0% 0%; background-repeat: no-repeat; background-size: initial; background: url("images/code.gif") left top no-repeat rgb(241, 241, 241); border-color: rgb(221, 221, 221); border-image: initial; border-style: dotted dotted dotted solid; border-width: 1px 1px 1px 10px; display: block; margin: 0px; outline: 0px; padding: 20px; vertical-align: baseline;">else res.statusCode === 404 
        res.end('SAYFA BULUNAMADI')

yazdık. Böylelikle eğer sunucunun verdiği yanıt 404 ise ekrana ‘SAYFA BULUNAMADI’ yazdırılacak. Yani eğer URL’e “/” işaretinden başka istek yapılırsa sunucu hepsinde ‘SAYFA BULUNAMADI’ yazdıracaktır.

Son olarak

<pre style="background: rgb(238, 238, 238); border: 1px dashed rgb(153, 153, 153); line-height: 14px; outline: 0px; overflow: auto; padding: 5px; vertical-align: baseline; width: 592.016px;"><code style="background-attachment: initial; background-clip: initial; background-color: #f1f1f1; background-origin: initial; background-position: 0% 0%; background-repeat: no-repeat; background-size: initial; background: url("images/code.gif") left top no-repeat rgb(241, 241, 241); border-color: rgb(221, 221, 221); border-image: initial; border-style: dotted dotted dotted solid; border-width: 1px 1px 1px 10px; display: block; margin: 0px; outline: 0px; padding: 20px; vertical-align: baseline;">server.listen(port, hostname, ()=> {
    console.log('Server çalışıyor, http://${hostname}:${port}/')
})

kodlarını yazarak serverımızı oluşturmuş oluyoruz. Eğer server düzgün şekilde çalışıyorsa terminal ekranına ‘Server çalışıyor’ yazdırılıp serverın adresini verecek. Arama çubuğuna “127.0.0.1:3000” yazarsak karşımıza aşağıdaki resim gibi bir sayfa çıkacaktır.