Node.JS

Node.js, sunucular üzerinde çalışan açık kaynaklı, platformlar arası bir JavaScript çalışma zamanıdır. 2009 yılında piyasaya sürülmesinden bu yana, bu platform son derece popüler hale geldi ve bu günlerde web geliştirme alanında çok önemli bir rol oynuyor.
Makalenin tamamı için Node.JS ...

Filtreyi Göster
Barındırma Filtreleri
A2 Themes & Host Me Filter

İşletim sistemi

Disk alanı

RAM belleği

Disk Tipi

CPU Çekirdekleri

Çeşit

Puan - 0
RedSwitches Logo
RedSwitches

RedSwitches

Pearl
$6.94 /Aylık


Sunucu Konumları


RedSwitches Servers in NetherlandsHollanda RedSwitches Servers in UnionAmerika Birleşik Devletleri RedSwitches Servers in MelbourneAvustralya RedSwitches Servers in MumbaiHindistan RedSwitches Servers in GermanyAlmanya
Karşılaştırmak
Puan - 0
Hostarina Logo
Hostarina

Hostarina

Personal
$2.92 /Aylık


Sunucu Konumları


Hostarina Servers in UnionAmerika Birleşik Devletleri Hostarina Servers in RawalpindiPakistan Hostarina Servers in MunichAlmanya
Karşılaştırmak
Puan - 0
Net9 Oy Logo
Net9 Oy

Net9 Oy

Small
$1.13 /Aylık


Sunucu Konumları


Net9 Oy Servers in Stockholmİsveç Net9 Oy Servers in HelsinkiFinlandiya Net9 Oy Servers in ParisFransa
Karşılaştırmak
Puan - 0
Heroku Logo
Heroku

Heroku

Hobby
$7 /Aylık


Sunucu Konumları


Heroku Servers in United StatesAmerika Birleşik Devletleri
Karşılaştırmak
Puan - 0
Awareindia.net Logo
Awareindia.net

Awareindia.net

Linux Hosting Plan G
$5.83 /Aylık

Karşılaştırmak
Puan - 0
Chemi Cloud Logo
Chemi Cloud

Chemi Bulut

Ionic
$2.95 /Aylık


Sunucu Konumları


Chemi Cloud Servers in BangaloreHindistan Chemi Cloud Servers in New YorkAmerika Birleşik Devletleri Chemi Cloud Servers in BucharestRomanya Chemi Cloud Servers in LondonBirleşik Krallık Chemi Cloud Servers in AmsterdamHollanda Chemi Cloud Servers in TorontoKanada Chemi Cloud Servers in SydneyAvustralya
Karşılaştırmak
Puan - 0
Oudel Logo
Oudel

Oudel

cPanel Hosting 1
$5.95 /Aylık


Sunucu Konumları


Oudel Servers in UnionAmerika Birleşik Devletleri
Karşılaştırmak

 

Node.js

 

 

Node.js, sunucular üzerinde çalışan açık kaynaklı, platformlar arası bir JavaScript çalışma zamanıdır. 2009 yılında piyasaya sürülmesinden bu yana, bu platform son derece popüler hale geldi ve bu günlerde web geliştirme alanında çok önemli bir rol oynuyor. Bir projenin GitHub'da topladığı yıldız sayısını popülerliğin göstergesi olarak düşünürsek, 50.000'den fazla yıldıza sahip olan Node.js çok çok popüler bir proje.

 

Node.js platformu, Google Chrome tarayıcısında kullanılan Google'ın V8 JavaScript motoru üzerine inşa edilmiştir. Bu platform esas olarak web sunucuları oluşturmak için kullanılır, ancak kapsamı bununla sınırlı değildir.

 

Node.js'nin ana özelliklerine bakalım.

 

Hız

 

Node.js'nin ana cazibe merkezlerinden biri hızdır. Node.js'de çalıştırılan JavaScript kodu, C veya Java gibi derlenmiş dillerde yazılan koddan iki kat daha hızlı olabilir ve Python veya Ruby gibi yorumlanmış dillerden daha hızlı olabilir. Bunun nedeni, platformun engellemeyen mimarisidir ve belirli sonuçlar kullanılan kıyaslamalara bağlıdır, ancak genel olarak Node.js çok hızlı bir platformdur.

 

Basitlik

 

Node.js platformunun öğrenilmesi ve kullanılması kolaydır. Aslında, özellikle diğer bazı sunucu platformlarıyla karşılaştırıldığında düpedüz çok basittir.

 

JavaScript

 

JavaScript, Node.js ortamında yürütülür. Bu, tarayıcıda JavaScript kullanan milyonlarca ön uç geliştiricinin, sunucu tarafı geliştirmeye geçmek için yepyeni bir araç öğrenmek zorunda kalmadan aynı programlama dilinde hem sunucu tarafı hem de istemci tarafı kodu yazabileceği anlamına gelir.

 

Tarayıcı ve sunucu aynı dil kavramlarını kullanır. Buna ek olarak, Node.js, platformda uygulanırken hızla yeni ECMAScript standartlarına geçiş yapabilir.

 

Node.js, tamamen geliştiricinin kontrolünde olan bir sunucu tarafı ortamı olduğundan, bunun için kullanıcıların tarayıcılarını yenilemelerini beklemeye gerek yoktur. Sonuç olarak, Node.js'nin destekleyici bir sürümünü yüklediğinizde yeni dil özellikleri kullanılabilir hale gelir.

 

V8 motoru

 

Diğer çözümlerin yanı sıra Node.js'nin kalbinde, Google Chrome ve diğer tarayıcılarda kullanılan Google'ın açık kaynaklı V8 JavaScript motoru bulunmaktadır. Bu, Node.js'nin JavaScript Chrome çalışma zamanını inanılmaz derecede hızlı hale getiren ve V8'i iyileştirmek için çalışmaya devam eden binlerce mühendisten faydalandığı anlamına gelir.

 

Eşzamansız

 

Geleneksel programlama dillerinde (C, Java, Python, PHP), geliştirici kodu eşzamansız olarak çalıştırmakla açıkça ilgilenmediği sürece tüm talimatlar varsayılan olarak engellenir. Sonuç olarak, örneğin, böyle bir ortamda, bazı JSON kodunu indirmek için bir ağ isteğinde bulunursanız, isteğin yapıldığı akışın yürütülmesi yanıt alınana ve işlenene kadar askıya alınacaktır.

 

JavaScript, tek bir iş parçacığı, geri çağrılar ve geliştirmeye olay odaklı bir yaklaşım kullanarak eşzamansız ve engellemeyen kod yazmayı çok daha kolaylaştırır. Ne zaman ağır bir işlem yapmamız gerekiyorsa, bu işlemin tamamlanmasından hemen sonra çağrılacak olan uygun mekanizmaya bir geri arama iletiyoruz. Sonuç olarak, programın çalışmaya devam etmesi için bu tür işlemlerin sonuçlarını beklemeye gerek yoktur.

 

Benzer bir mekanizma tarayıcılarda ortaya çıktı. Diyelim ki beklemeyi göze alamayızAJAXdüğme tıklamaları gibi kullanıcı eylemlerine yanıt veremeden bitirme isteği. Kullanıcıların web sayfalarıyla çalışmasını kolaylaştırmak için, hem ağdan veri indiren hem de düğme tıklamaları işleyen her şey eşzamanlı olarak gerçek zamanlı olarak gerçekleşmelidir.

 

Daha önce bir düğme tıklama olay işleyicisi oluşturduysanız, eşzamansız programlama tekniklerini zaten kullanmışsınızdır.

 

Eşzamansız mekanizmalar, tek bir Node.js sunucusunun programlayıcıya iş parçacığı yönetimi ve paralel kod yürütme görevlerini yüklemeden aynı anda binlerce bağlantıyı yönetmesine izin verir. Bu tür şeyler genellikle hata kaynaklarıdır.

 

Node.js, geliştiriciye engellemeyen temel G / Ç mekanizmaları sağlar ve genel olarak Node.js çerçevesinde kullanılan kitaplıklar, engellemeyen paradigmalar kullanılarak yazılır.Bu, engelleme davranışını normdan ziyade istisna yapar.

 

Node.js'nin ağdan veri yükleme, bir veritabanına veya dosya sistemine erişme gibi bir G / Ç işlemi gerçekleştirmesi gerektiğinde, bu tür bir işlemin sonuçlarını bekleyen ana iş parçacığını engellemek yerine, Node.js yürütmeyi ve bu işlemin sonuçları alınana kadar başka şeyler yapmaya devam edin.

 

Kitaplıklar

 

Node.js için npm adı verilen bir paket yöneticisiyle çalışmanın kolaylığı ve rahatlığıyla, Node.js ekosistemi gelişiyor. Şu anda herhangi bir Node.js geliştiricisinin özgürce kullanabileceği npm kayıt defterinde yarım milyondan fazla açık kaynak paketi vardır.

 

Node.js platformunun bazı ana özelliklerini inceledikten sonra, hadi eylem halinde deneyelim. Kurulumla başlayalım.

 

 

Node.js

 

 

Node.js yükleniyor

 

Node.js, birazdan ele alacağımız çeşitli şekillerde kurulabilir. Böylece, tüm büyük platformlar için resmi kurulum paketleri bulunabilir.

 

İşletim sisteminde sağlanan paket yöneticisini kullanmak olan Node.js'yi kurmanın çok uygun başka bir yolu vardır. Örneğin, bu alanda fiili standart olan macOS paket yöneticisi Homebrew olarak adlandırılır.

 

Sisteminizde bir tane varsa, komut satırında bu komutu çalıştırarak Node.js'yi kurabilirsiniz:

 

brew yükleme düğümü

 

Linux ve Windows dahil olmak üzere diğer işletim sistemleri için paket yöneticilerinin bir listesi burada bulunabilir.

 

Popüler bir Node.js sürüm yöneticisi nvm'dir. Bu araç, Node.js'nin farklı sürümleri arasında rahatça geçiş yapmanıza olanak tanır; yardımıyla, örneğin, Node.js'nin yeni bir sürümünü yükleyebilir ve deneyebilir ve ardından gerekirse eskisine geri dönebilirsiniz. Nvm, eski bir Node.js sürümünde bazı kodları test etmeniz gereken durumlarda da kullanışlıdır.

 

Yeni başlayanların resmi Node.js yükleyicilerini kullanması için. MacOS kullanıcıları için, Homebrew kullanarak Node.js'yi yüklemeniz önerilir. Artık Node.js'yi yüklediğinize göre, "Merhaba Dünya" yazma zamanı.

 

İlk Node.js Uygulaması

 

İlk Node.js uygulamasının en yaygın örneği basit bir web sunucusudur. İşte kodu:

const http = gerekli ('http')

const ana bilgisayar adı = '127.0.0.1'

const bağlantı noktası = 3000

const server = http.createServer ((req, res) = & gt; {

res.statusCode = 200

res.setHeader ('İçerik Türü', 'metin / düz')

res.end ('Merhaba Dünya \ n')

})

server.listen (bağlantı noktası, ana bilgisayar adı, () = & gt; {

console.log (`http: // $ {hostname} adresinde çalışan sunucu: $ {port} /`)

})

 

Bu kodu çalıştırmak için, bir server.js dosyasına kaydedin ve terminalde aşağıdaki komutu çalıştırın:

 

düğüm server.js

 

Sunucuyu kontrol etmek için bir tarayıcı açın ve http://127.0.0.1:3000 adres çubuğuna, yani başarılı bir şekilde başlatıldıktan sonra konsolda görüntülenecek sunucu adresini girin. Her şey olması gerektiği gibi çalışıyorsa, sayfada "Merhaba Dünya" görüntülenecektir.

 

Bu örneğe bakalım.

 

İlk olarak, kodun HTTP modülünü bağlama komutunu içerdiğine dikkat edin.

 

Node.js platformu, ağ ile çalışmak için iyi geliştirilmiş mekanizmalar içeren mükemmel bir standart modül setine sahiptir.

CreateServer () nesne yöntemi http, yeni bir HTTP sunucusu oluşturur ve onu döndürür.

 

Sunucu, belirli bir ana bilgisayardaki belirli bir bağlantı noktasını dinlemek üzere yapılandırılmıştır. Sunucu hazır olduğunda, ilgili geri arama çağrılır ve bize sunucunun çalıştığını bildirir.

Sunucu bir istek aldığında, iki nesne sağlayan bir olay tetiklenir. Birincisi istek (req, http.IncomingMessage nesnesi), ikincisi yanıttır (res, http.ServerResponse nesnesi). HTTP isteklerini işlemek için en önemli mekanizmalardır.

 

İlki bize talep hakkında bilgi verir. Basit örneğimizde, bu verileri kullanmıyoruz, ancak gerekirse nesneyi kullanarak, istek başlıklarına ve içinde iletilen verilere erişebilirsiniz.

 

İkincisi, bir talebe yanıt oluşturmak ve göndermek için gereklidir.

 

Bu durumda talebe verilen cevabı aşağıdaki gibi oluşturuyoruz. İlk olarak, özellik durum kodunu, başarılı bir işlemi gösteren 200 değerine ayarladık:

 

res.statusCode = 200

Ardından, Content-Type başlığını belirledik:

res.setHeader ('İçerik Türü', 'metin / düz')

Daha sonra, içeriğini yöntem end () 'ye argüman olarak ekleyerek yanıtın hazırlanmasını tamamlarız:

res.end ('Merhaba Dünya \ n')

 

Node.js platformu etrafında güçlü bir ekosistemin oluştuğundan daha önce bahsetmiştik. Şimdi Node.js için bazı popüler çerçeveleri ve yardımcı araçları tartışalım.

 

Node.js için Çerçeveler ve Yardımcı Araçlar

 

Node.js düşük seviyeli bir platformdur. Geliştirmeyi basitleştirmek ve programcıların hayatını kolaylaştırmak için çok sayıda kütüphane oluşturuldu. Bazıları zamanla çok popüler hale geldi. İşte iyi yapıldığını ve keşfetmeye değer olduğunu düşündüğüm kütüphanelerin küçük bir listesi:

 

Ekspres: Bu kütüphane, geliştiriciye web sunucuları oluşturmak için son derece basit ama güçlü bir araç sağlar. Express'in başarısının anahtarı, minimalist bir yaklaşım ve "tek durak" sunucu mimarisi vizyonunu empoze etmeye çalışmadan temel sunucu tarafı mekanizmalarına odaklanmaktı.

 

Meteor: JavaScript uygulamaları geliştirmek ve hem istemcide hem de sunucuda kod kullanmak için izomorfik bir yaklaşım benimseyen güçlü bir tam yığın çerçevedir. Meteor, bir geliştiricinin ihtiyaç duyabileceği her şeyi içeren bağımsız bir araçtı. Artık React, Vue ve Angular gibi ön uç kitaplıklarıyla da entegre oluyor. Meteor, yaygın web uygulamaları geliştirmenin yanı sıra mobil geliştirmede de kullanılabilir.

 

Koa: Bu web çerçevesi, Express'in arkasındaki aynı ekip tarafından oluşturulmuştur. Express ile yılların deneyimine dayanarak, basitlik ve kompaktlığa odaklanılarak geliştirilmiştir. Bu proje, topluluğu bölen diğer çerçeve mekanizmalarıyla uyumsuz olan Express'te büyük değişiklikler yapma sorununa bir çözüm olarak ortaya çıktı.

 

Next.js: Bu çerçeve, React uygulamalarının sunucu tarafında oluşturulmasını düzenlemek için tasarlanmıştır.

 

Mikro: Eşzamansız HTTP mikro hizmetleri oluşturmak için çok hafif bir kitaplıktır.

Socket.io. Gerçek zamanlı ağ uygulamaları geliştirmek için bir kütüphanedir.

 

Aslında, Node.js ekosisteminde, hemen hemen her görev için bir yardımcı kitaplık bulabilirsiniz. Tahmin edebileceğiniz gibi, böyle bir ekosistem oluşturmak çok zaman alıyor. Node.js platformu 2009'da ortaya çıktı. Varlığı sırasında, bu platformu öğrenmek isteyen bir programcının bilmesi gereken birçok şey oldu.

 

Node.js'nin kısa geçmişi

 

Node.js bu yıl 9 yaşında. Elbette, bu yaşı zaten 23 yaşında olan JavaScript yaşıyla veya Mozaik'in gelişinden sayarsanız bildiğimiz şekliyle web'in 25 yaşındaki yaşıyla karşılaştırdığınızda bu çok fazla değil. tarayıcı.

 

9 yıl teknoloji için kısa bir süre, ancak şimdi Node.js platformu her zaman varmış gibi görünüyor.

 

Platformun henüz 2 yaşındayken eski sürümlerinden Node.js ile. O zaman bile, Node.js hakkında çok fazla bilgi olmamasına rağmen, kişi zaten Node.js'nin çok ciddi olduğunu hissedebiliyordu.

 

Şimdi Node.js'nin arkasındaki teknolojiler hakkında konuşalım vebu platformla ilgili temel gelişmeler.

 

Dolayısıyla JavaScript, Netscape Navigator tarayıcısında web sayfalarını işlemek için bir komut dosyası dili olarak Netscape'te oluşturulmuş bir programlama dilidir.

Netscape'in işinin bir kısmı, Netscape LiveWire adlı bir ortamı içeren web sunucuları satmaktı. Sunucu tarafı JavaScript kullanarak dinamik web sayfaları oluşturmanıza izin verdi.

 

JS'yi sunucu tarafı geliştirme için kullanma fikri Node.js'den çok daha eskidir. Bu fikir neredeyse JavaScript'in kendisi kadar eskidir, ancak söz konusu zamanda sunucu tarafı JS popüler değildi.

 

Node.js platformunu bu kadar yaygın ve popüler yapan en önemli faktörlerden biri, ilk ortaya çıktığı zamandır. Böylece, birkaç yıl önce JavaScript ciddi bir dil olarak görülmeye başlandı. Bu, dünyaya modern web teknolojilerinin gücünü gösteren Google Haritalar veya Gmail gibi Web 2.0 uygulamaları sayesinde oldu.

 

Bu güne kadar devam eden rekabetçi tarayıcı savaşı sayesinde JavaScript motorlarının performansı önemli ölçüde artmıştır. Büyük tarayıcıların arkasındaki geliştirme ekipleri, genel olarak JavaScript üzerinde olumlu bir etkiye sahip olan çözümlerinin performansını artırmak için her gün çalışıyor.

 

Böyle bir motor, Chrome tarayıcısında kullanılan ve Node.js'de kullanılan, daha önce bahsedilen V8'dir. Yüksek performanslı JavaScript kodu için çabalayan tarayıcı geliştiricilerinin sonuçlarından biridir.

 

Elbette, Node.js'nin popülaritesi sadece şanslı bir tesadüf ve platformun doğru zamanda doğmuş olmasına dayanmıyor. Dünyayı sunucu tarafı JavaScript geliştirmeye yenilikçi bir yaklaşımla tanıştırdı. Node.js tarihindeki önemli kilometre taşlarına bakalım.

 

2009


  • Node.js'nin ortaya çıkışı

  • İlk npm varyantını yapmak.

 

2010

  • Express'in görünümü.

  • Socket.io'nun ortaya çıkışı.

 

2011


  • Npm 1.0 sürümü.

  • LinkedIn ve Uber gibi büyük şirketler Node.js kullanmaya başladı.

 

2012


  • Node.js'nin popülaritesindeki hızlı artış.

 

2013


  • Node.js kullanan yayınlar için ilk büyük platform olan Ghost'un ortaya çıkışı.

  • Koa sürümü.

 

2014


  • Bu yıl dramatik olaylar yaşandı. Node.js'nin bir çatalı olan IO.js projesi ortaya çıktı ve amacı, diğer şeylerin yanı sıra, ES6 desteğini sunmak ve platformun gelişimini hızlandırmaktı.

 

2015


  • Node.js Vakfı kuruldu.

  • IO.js ve Node.js'yi birleştirme

  • Npm'de özel modüller ile çalışmak mümkün hale gelir.

  • Yield Node.js 4 (platformun 1, 2 ve 3 sürümlerinin olmadığına dikkat edilmelidir).

 

2016


  • Sol ped paketi olayı.

  • İpliğin ortaya çıkışı.

  • Node.js 6 sürümü.

 

2017


  • Npm, güvenliğe daha fazla önem vermeye başlıyor.

  • Node.js 8 sürümü

  • HTTP / 2 desteğinin ortaya çıkışı.

  • V8, resmi olarak yalnızca Chrome için değil, aynı zamanda Node için tasarlanmış bir JS motoru olarak tanınır.

  • Her hafta 3 milyar npm indirme var.

 

2018


  • Node.js 10 sürümü.

  • ES modülleri için destek.

  • Deneysel mjs desteği.