İncelemeler 3778
Sunucu Konumları
İncelemeler 233
Sunucu Konumları
İncelemeler 233
Sunucu Konumları
Sunucu Konumları
İncelemeler 453
Sunucu Konumları
İncelemeler 72
Sunucu Konumları
İncelemeler 7
Sunucu Konumları
İncelemeler 4
Sunucu Konumları
İncelemeler 3
Sunucu Konumları
İncelemeler 3
Sunucu Konumları
İncelemeler 2
Sunucu Konumları
İncelemeler 2
Sunucu Konumları
İncelemeler 1
Sunucu Konumları
İncelemeler 2
İncelemeler 214
Sunucu Konumları
Sunucu Konumları
Sunucu Konumları
Sunucu Konumları
Sunucu Konumları
Sunucu Konumları
Sunucu Konumları
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 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.