Node.js Uygulaması Nasıl Dağıtılır?

how_to_deploy_nodejs_app

Bu makalede, bir Node JS uygulamasının nasıl dağıtılacağını açıklayacağız. Node’un avantajları ve dezavantajları ile IaaS, PaaS ve BaaS dahil olmak üzere dağıtım seçeneklerinden bahsedeceğiz. Son olarak, Back4app’e bir Node uygulaması dağıtacağız.

Node.js nedir?

Node.js, Chrome’un V8 JavaScript motoru üzerine inşa edilmiş açık kaynaklı ve platformlar arası bir JavaScript çalışma zamanıdır. Node, JavaScript geliştiricilerinin sunucu tarafı işlemlerini kodlamalarına izin vererek tam yığın haline gelmelerini sağlamayı amaçlamaktadır. Kullanım alanları arasında sunucu tarafı komut dosyası oluşturma, gerçek zamanlı uygulamalar, akışlı web uygulamaları, tek sayfalı uygulamalar (SPA’lar), işbirliği araçları ve web oyunları yer almaktadır.

Node, asenkron I/O yeteneğine sahip olay güdümlü bir mimariye sahiptir. JavaScript’i yerel makine koduna derleme yeteneği sayesinde son derece hızlıdır. Muazzam miktarda aktif bağlantıyı idare edebilir ve geliştiricilerin kolayca ölçeklenebilir yüksek performanslı uygulamalar oluşturmasına olanak tanır.

Bu teknoloji ilk olarak 2009 yılında yaratıcısı Ryan Dahl tarafından yıllık Avrupa JSConf’unda tanıtıldı. Kısa sürede JavaScript ekosistemindeki en ilginç yazılım parçalarından biri haline geldi.

Node’un popülaritesi 2017’de zirveye ulaştı ve hala yüksek. IBM, LinkedIn, Microsoft, Netflix ve benzeri birçok multi-milyon şirket tarafından kullanılan en popüler geliştirme araçlarından biridir. Basitliği ve ölçeklendirme yeteneği, yeni başlayanlar da dahil olmak üzere tüm şirket boyutları için mükemmel bir uyum sağlar.

Sonraki iki bölümde Node’un avantaj ve dezavantajlarını inceleyeceğiz.

Node.js’in Avantajları

Yüksek performans

Giriş bölümünde de belirtildiği gibi Node, Google’ın yüksek performanslı JavaScript motoru tarafından desteklenmektedir. V8, JavaScript’i yıldırım hızında derleyebilir ve çalıştırabilir, çünkü JavaScript’i yerel makine koduna derler.

Node ayrıca JavaScript’in tek iş parçacıklı bir programlama dili olmasına rağmen tıkanmayan G/Ç işlemleri gerçekleştirmesini sağlayan bir olay döngüsü kullanır. Bu da onu piyasadaki en hızlı seçeneklerden biri haline getirir.

Ölçeklenebilirlik

Node.js’in en önemli avantajlarından biri ölçeklendirme yeteneğidir. Node uygulamaları hem yatay hem de dikey olarak ölçeklendirilebilir. Yatay ölçeklendirme, mevcut bir sisteme ek düğümler ekleyerek elde edilirken, dikey ölçeklendirme belirli bir düğüme ek kaynaklar eklemek anlamına gelir. Platformun mükemmel ölçeklendirme seçenekleri, onu LinkedIn, Netflix ve PayPal gibi on milyonlarca günlük kullanıcısı olan büyük şirketlerin yanı sıra startup’lar için de uygun hale getirir.

Node ayrıca mikro hizmet mimarisi için de çok uygundur ve geliştiricilerin sürekli bir teslimat hattına uyan ve talep üzerine kolayca ölçeklenebilen küçük bileşenler oluşturmasına olanak tanır.

Öğrenmesi kolay

Node’un JavaScript’teki temeli, JavaScript’in temellerini zaten bilen geliştiriciler için öğrenmeyi son derece kolay hale getirir. Dik bir öğrenme eğrisine sahip değildir ve birkaç hafta gibi kısa bir sürede ustalaşılabilir. Node’un basitliği, onu her tür proje için mükemmel bir uyum haline getirir.

Daha hızlı pazara sunma süresi

Pazara sunma süresi, pek çok geliştirme ekibinin temel ölçütlerinden biridir. Herkes ürününü mümkün olan en kısa sürede pazara sunmak ister ve Node tam da bunu yapmanızı sağlar.

Node’un basitliği ve çok sayıda npm paketi, pazara sunma süresini büyük ölçüde kısaltır. GitHub ve diğer platformlarda projenizi olabildiğince hızlı bir şekilde çalışır hale getirmek için şablon olarak kullanılabilecek bir dizi açık kaynaklı proje bulunmaktadır.

Savaşta test edilmiş araç

Node, 2009’dan beri savaşta test edilmiş ve olgunlaşmış bir araçtır. Kararlılığı eBay, Netflix ve LinkedIn gibi günlük milyonlarca kullanıcısı olan büyük şirketler tarafından test edilmiştir.

Harika avantajları nedeniyle Node, bir dizi teknoloji yığınına dahil edilmiştir (genellikle Express ve bir NoSQL veritabanı ile birlikte). Node içeren teknoloji yığınlarından bazıları şunlardır:

  • MERN
  • ANLAMI
  • DERN

Harika bir topluluk

Node.js, Node’u daha iyi ve daha iyi hale getirmek için katkıda bulunmaya devam eden güçlü ve aktif bir geliştirici ve meraklı topluluğuna sahiptir. Bir soruna takıldığınızda ya da bir sorunuz olduğunda yardım alabileceğiniz birçok farklı yer vardır. Node’un popülerliği nedeniyle, GitHub’da halihazırda hazırlanmış çözümler ve kodlar bulmak zor değildir.

Node.js ile ilgili bir başka harika şey de npm (Node Package Manager) adlı paket yöneticisidir. Npm, geliştiricilerin tekerleği yeniden icat etmek yerine hazır JavaScript paketlerini itmelerine ve kullanmalarına olanak tanır. Paketler, uygulamaların geliştirme maliyetini ve karmaşıklığını önemli ölçüde azaltabilir. Bu yazının yazıldığı sırada npm üzerinde 1,3 milyondan fazla paket barındırılıyordu.

Node.js’nin Sınırlamaları

Karmaşık görevler için düşük performans

Node.js’in en büyük dezavantajı, ağır hesaplama gerektiren görevleri yerine getirememesidir. Günümüzde pek çok program ve algoritma, en iyi sonuçları elde etmek için paralelleştirme gerektirmektedir. Bildiğiniz gibi Node.js, tek iş parçacıklı bir ön uç dili olarak tasarlanan ve çoklu iş parçacıklarını desteklemeyen JavaScript’e dayanmaktadır.

Node.js ekibi, 10.5 güncellemesiyle birlikte işçi iş parçacıkları biçiminde çoklu iş parçacığı desteğini kullanıma sundu. Bu modül, geliştiricilerin bir iş parçacığı havuzundan ek iş parçacıklarından yararlanmasına olanak tanır. İşçi iş parçacıklarıyla bile Node hala ağır hesaplamalar için uygun değildir. Proje gereksinimleriniz karmaşık hesaplamalar, ağır hesaplama veya paralelleştirme içeriyorsa, başka bir programlama dili kullanmanız daha iyi olabilir.

Asenkron programlama modeli

Node.js asenkron programlama modelini kullanır. Bu nedenle büyük ölçüde geri aramaların kullanımına dayanır. Geri aramalar, arka planda çalışan ve (bir noktada) bir sonuç döndüren işlevlerdir. Geri aramaları kullanarak kodunuz daha karmaşık ve hata ayıklaması daha zor hale gelebilir. Ayrıca, geri aramaları birden fazla seviyede iç içe yerleştirirseniz, geri aramacehennemi” olarak adlandırılan bir durumla karşılaşabilirsiniz.

Geri arama cehennemi ve asenkron programlamanın diğer sorunları, temiz kod ilkeleri izlenerek kolayca önlenebilir.

Kararsız API

Node.js ile ilgili bir diğer büyük sorun da uygulama programlama arayüzünün (API) istikrarsızlığıdır. Node’un API’si, kod parçalarını bozabilecek geriye dönük uyumsuz değişikliklerle sık sık değişir. Sonuç olarak Node geliştiricilerinin değişiklikleri takip etmeleri ve kod tabanlarının en son Node.js API sürümleriyle uyumlu olduğundan emin olmaları gerekir.

Güçlü bir kütüphane destek sisteminin olmaması

JavaScript diğer programlama dillerine kıyasla iyi bir kütüphane sistemine sahip değildir. Bu da birçok geliştiriciyi görüntü işleme, XML ayrıştırma, nesne-ilişkisel eşleme (ORM), veritabanlarını kullanma ve daha fazlası gibi çeşitli ortak görevlerin desteğini almaya zorlar.

Aşırı büyümüş ve olgunlaşmamış bir modül kayıt defteri

Node, npm’de yayınlanan binlerce açık kaynaklı modül üreten büyük bir geliştirici topluluğuna sahiptir. Bununla ilgili sorun, npm’nin modül kodunun çalıştığından ve iyi yazılmış olduğundan emin olmak için herhangi bir kontrol uygulamamasıdır.

Birçok modül rastgele desteklenmez hale gelir veya yeni Node sürümleriyle bozulur ve ardından geliştiriciler bir alternatif aramak zorunda kalır. Geçmişte, bazı npm modülleri de hacklenmiş ve virüsler ve kripto madencileri ile enjekte edilmiştir. Bu nedenle, kurumsal bir ortamda kullanılabilecek modüller bulmak zordur.

Beni yanlış anlamayın, npm’in harika olduğunu düşünüyorum, ancak yine de rastgele modüller yüklerken dikkatli olmalısınız.

Node.js Dağıtım Seçenekleri

Bir Node.js uygulamasını dağıtmanın birden fazla yolu vardır. Genel olarak konuşursak, bunları aşağıdaki dört gruba ayırabiliriz:

  1. Geleneksel barındırma
  2. Hizmet Olarak Altyapı (IaaS)
  3. Hizmet Olarak Platform (PaaS)
  4. Hizmet Olarak Arka Uç (BaaS)

Bunları soyutlama düzeylerine göre bir piramit grafikte gösterebiliriz:

Bulut dağıtım modelleri

Dağıtım seçenekleri aşağıdaki soyutlama katmanlarıyla ilgilenir:

IaaS vs PaaS vs BaaS

Her bir gruba bir göz atalım. Nasıl çalıştığını bildiğinizden emin olduğum için geleneksel barındırmayı atlayacağız.

AWS gibi IaaS hizmetleri

Hizmet Olarak Altyapı (IaaS), sanallaştırılmış bir ortamda sunucular, ağ, işletim sistemleri ve depolama gibi bilgi işlem kaynakları sağlayan bir bulut bilişim hizmet modelidir. Bu bulut sunucuları genellikle üst düzey API’ler veya gelişmiş panolar aracılığıyla kuruluşa sunulur ve müşterilere tüm altyapı üzerinde tam kontrol sağlar.

IaaS son derece ölçeklenebilirdir. Müşterilerin talebe bağlı olarak hem dikey hem de yatay olarak kolayca ölçeklenmesini sağlar. IaaS sağlayıcıları genellikle kullandığın kadar öde modelini izler, yani yalnızca kullandığınız kaynaklar için ödeme yaparsınız.

IaaS 2010’ların başında ortaya çıktı ve o zamandan beri birçok iş yükü türü için standart soyutlama modeli haline geldi. Mikro hizmetler ve sunucusuz gibi yeni teknolojilerin yükselişiyle bile IaaS en popüler seçenek olmaya devam ediyor.

PaaS ve BaaS’ın aksine IaaS, buluttaki kaynakların en düşük seviyede kontrolünü sağlar. Bu da onu en esnek bulut bilişim modeli yapar. Dezavantajı ise uygulamalar, işletim sistemleri, ara katman yazılımları ve veriler gibi unsurların yönetiminden tamamen müşterinin sorumlu olmasıdır ki bu da genellikle çok zaman alır.

Bazı tipik IaaS örnekleri şunlardır:

  • Amazon Web Hizmetleri (AWS)
  • Google Compute Engine (GCE)
  • Microsoft Azure
  • DigitalOcean
  • Linode
  • Rackspace

Heroku gibi PaaS hizmetleri

Hizmet Olarak Platform (PaaS), kullanıcılara uygulama geliştirebilecekleri, yönetebilecekleri ve sunabilecekleri bir bulut ortamı sağlayan bir bulut bilişim hizmet modelidir. PaaS, bilgisayar kaynakları sağlamanın yanı sıra, uygulamaları geliştirmek, özelleştirmek ve test etmek için önceden oluşturulmuş birçok araçla birlikte gelir. PaaS sağlayıcılarının çoğu, uygulamanızı birkaç tıklamayla çalışır hale getirmenize olanak tanır!

PaaS, kullanıcıların altta yatan altyapıyı yönetmek yerine uygulamalarına odaklanmalarını sağlar. PaaS sağlayıcıları sunucularınızı, işletim sistemlerinizi, sunucu yazılımlarınızı, yedeklemelerinizi ve daha fazlasını yönetmek gibi birçok ağır işi sizin yerinize yapar.

PaaS avantajlarından bazıları şunlardır:

  • Daha hızlı pazara sunma
  • Artırılmış güvenlik
  • Maliyet etkinliği
  • Ölçeklenebilirlik
  • Yüksek kullanılabilirlik
  • Daha az kod gerekli

PaaS’ın dezavantajları, büyük olasılıkla satıcının yeteneklerine bağımlı olmanız, kilitlenme riski ve esneklik ve kontrol eksikliğidir. Bununla birlikte, Paas yine de kullanıcıların daha hızlı uygulama oluşturmasına olanak tanır ve yönetimi daha az yük getirir.

PaaS hizmetleri şunları içerir:

  • Heroku
  • AWS Elastic Beanstalk
  • DigitalOcean Uygulama Platformu
  • Microsoft Azure Uygulama Hizmeti
  • Sinek Platformu (Fly.io)
  • Render

Back4app gibi BaaS hizmetleri

Backend as a Service (BaaS), geliştirmenin arka uç tarafını otomatikleştiren ve bulut altyapısıyla ilgilenen bir platformdur. Bunun da ötesinde, kullanıcı yönetimi, e-posta bildirimleri, anlık bildirimler, bulut kodu işlevleri, sosyal medya entegrasyonları, dosya depolama ve ödemeler gibi özellikler sağlar.

Bu, geliştiricilerin altta yatan arka uç ve altyapı hakkında endişelenmeden ana işe ve ön uç oluşturmaya odaklanmasına olanak tanır. Ön uç genellikle BaaS satıcısı tarafından sunulan özel API’ler ve SDK’lar aracılığıyla geliştirilir. Bu, uygulamaları daha az karmaşık ve bakımı daha kolay hale getirir.

BaaS, IaaS ve PaaS’ın tüm avantajlarını sağlarken arka uç soyutlamasını da içerir. BaaS’tan yararlanan ekipler pazara çıkış süresini büyük ölçüde kısaltır, mühendislik maliyetlerini düşürür ve daha az mühendis gerektirir.

BaaS, MVP (Minimum Uygulanabilir Ürün), bağımsız uygulamalar veya az sayıda entegrasyon gerektiren uygulamalar ve görev açısından kritik olmayan kurumsal uygulamalar dahil olmak üzere birçok proje türü için kullanılabilir.

BaaS’ın dezavantajları, IaaS ve PaaS’a göre daha az esnek olması, daha düşük düzeyde kontrol ve özelleştirme sağlaması ve açık kaynaklı olmayan platformlar için kilitlenme olasılığıdır.

Birkaç BaaS örneği:

  • Back4app
  • AWS Amplify
  • Firebase
  • Ayrıştırma
  • Cloudkit
  • Backendless

Node.js Dağıtım Süreci

Makalenin bu bölümünde Back4app’e bakacağız ve Node JS uygulamasının nasıl oluşturulacağını ve dağıtılacağını öğreneceğiz

Back4app nedir?

Back4app, piyasadaki en iyi açık kaynaklı Backend as a Service (BaaS) çözümlerinden biridir. Kullanıcılarına çok çeşitli özellikler ve avantajlar sunarak geliştiricilerin hızla web ve mobil uygulamalar oluşturmasına olanak tanır. Back4app’i kullanarak arka uç veya temel altyapı hakkında endişelenmek yerine ana işinize odaklanabileceksiniz.

Çözüm, zengin özelliklere sahip ve kullanımı kolay bir gösterge paneli ve bir komut satırı arayüzü (CLI) ile birlikte gelir. Ayrıca Flutter, React Native, Node.js, Angular, Android, iOS ve daha fazlası gibi tüm favori araçlarınız için SDK’lar sağlarlar!

Back4app’in temel özellikleri şunlardır:

  • Elektronik tablo benzeri veritabanı
  • REST ve GraphQL API’leri
  • Canlı Sorgular
  • Kimlik doğrulama (sosyal kimlik doğrulama dahil)
  • Ölçeklenebilir Hosting
  • Anlık ve E-posta Bildirimleri

Özellikleri hakkında daha fazla bilgi için Back4app Özellikleri‘ne göz atın.

Back4app, her boyuttaki uygulamaya uyabilecek basit ve anlaşılır bir fiyat modeli izliyor. Prototip oluşturmak ve platformu test etmek için harika olan cömert bir ücretsiz plan (kredi kartı gerekmiyor) sunuyorlar. Bu plan şunları içeriyor:

  • 25 bin istek
  • 250 MB veri depolama alanı
  • 1 GB aktarım
  • 1 GB dosya depolama alanı

Back4app fiyatlandırması hakkında daha fazla bilgi için Fiyatlandırma sayfasına göz atın.

Proje Tanıtımı

Basit bir TODO web uygulaması kodlayıp dağıtacağız. Web uygulaması temel CRUD işlemlerini destekleyecek – oluşturma, alma, güncelleme ve silme. Express web çerçevesini kullanarak Node.js’de kodlayacağız, veri depolama Parse tarafından ele alınacak ve şablonlama motoru olarak Twig kullanacağız.

Konuşlandırılmış uygulamayı çalışırken görmek için buraya tıklayın!

Önkoşullar:

  • Node.js hakkında temel bilgi
  • Temel Express anlayışı
  • Şablonlama motoru ile deneyim
  • Veritabanları ve ParseJS hakkında temel bilgi

Back4app CLI

Aşağıdaki adımlar bir Back4app hesabınızın olmasını gerektirecektir. Zaten hesabınız varsa giriş yapın, yoksa devam edin ve ücretsiz hesap için kaydolun.

Back4app CLI, Back4app platformu ile etkileşim kurmanızı sağlayan bir komut satırı arayüzüdür.

Mac/Linux’a yüklemek için çalıştırın:

$ curl https://raw.githubusercontent.com/back4app/parse-cli/back4app/installer.sh | sudo /bin/bash

Komut, en son CLI ikili dosyasını indirecek ve /usr/local/bin/b4a içinde saklayacaktır.

Diğer işletim sistemleri için lütfen resmi dokümanlara bakın.

CLI’yi kullanmak için hesabınızla kimlik doğrulaması yapmanız gerekir. Bunu yapmak için önce bir hesap anahtarı oluşturmanız gerekir. Back4app kontrol panelinize gidin ve kullanıcı adınıza (ekranın sağ üst köşesi) ve ardından “Hesap Anahtarları “na tıklayın:

Back4app hesap anahtarları

Yeni bir hesap anahtarı eklemek için özel bir anahtar adı girin ve ardından “+” tuşuna basın. Bir sonraki adımda ihtiyacımız olacağı için anahtarı not alın:

Back4app hesap anahtarları

Anahtarı başarıyla oluşturduktan sonra terminale geri dönün ve çalıştırın:

$ b4a configure accountkey

Input your account key or press ENTER to generate a new one.       
NOTE: on pressing ENTER we'll try to open the url:                 
        "http://dashboard.back4app.com/classic#/wizard/account-key"
in default browser.
Account Key: <YOUR_GENERATED_ACCOUNT_KEY>
Successfully stored account key for: "<YOUR_EMAIL>".

Kimlik doğrulamanın çalıştığından emin olmak için uygulamalarınızı listelemeyi deneyin:

$ b4a list

These are the apps you currently have access to:

Hesabınız benimki gibi yeniyse hiçbir uygulama listelenmeyecektir.

Uygulama Oluştur

Devam edelim, bir Back4app uygulaması oluşturalım.

Koş:

$ b4a new

Would you like to create a new app, or add Cloud Code to an existing app?
Type "(n)ew" or "(e)xisting": n
Please choose a name for your Parse app.
Note that this name will appear on the Back4App website,
but it does not have to be the same as your mobile app's public name.
Name: nodejs-back4app
Awesome! Now it's time to set up some Cloud Code for the app: "nodejs-back4app",
Next we will create a directory to hold your Cloud Code.
Please enter the name to use for this directory,
or hit ENTER to use "nodejs-back4app" as the directory name.

Directory Name:
You can either set up a blank project or create a sample Cloud Code project
Please type "(b)lank" if you wish to setup a blank project, otherwise press ENTER: 
Successfully configured email for current project to: "<YOUR_EMAIL>"
Your Cloud Code has been created at /dev/nodejs-back4app.
  1. Yeni veya mevcut bir uygulama oluşturun: yeni
  2. Bir uygulama adı seçin: Özel bir ad seçin
  3. Dizin adı: ENTER tuşuna basın
  4. Boş veya örnek Bulut Kodu Projesi: ENTER tuşuna basın

Komut aşağıdaki yapıya sahip bir dizin oluşturacaktır:

nodejs-back4app/
├── cloud/
│   └── main.js
├── public/
│   └── index.html
├── .parse.local
└── .parse.project
  1. cloud, tüm bulut kodu ve işlevleri için bir dizindir
  2. public, resimler, stil sayfaları ve daha fazlası gibi genel dosyalar için bir dizindir
  3. .parse.local ve .parse.project Parse yapılandırmasını saklamak için kullanılır

İhtiyacımız olmayacağı için main.js ve index.html dosyalarını silin.

Web Hosting

Bir Node.js uygulaması oluşturduğumuz için, Back4app’in uygulamamızı barındırması ve internete herkese açık hale getirmesi için web barındırmayı etkinleştirmemiz gerekiyor.

Web barındırma özelliğini etkinleştirmek için Back4app kontrol panelinize gidin, uygulamanızı seçin, ekranın sol tarafındaki “Uygulama Ayarları “na ve ardından “Sunucu Ayarları “na tıklayın. “Webhosting ve Özel Alan Adları “nı arayın ve tekrar “Ayarlar “a tıklayın.

“Back4app Hosting’i Etkinleştir “e tıklayın ve bir alt alan adı seçin. Ben nodejsback4app kullanacağım:

Back4app web hosting

Son olarak, “Kaydet “e tıklayın.

Uygulamanız daha sonra şu adresten erişilebilir olacaktır:

https://<your_subdomain>.b4a.app/

Web uygulamanıza özel bir alan adı bağlamaktan da çekinmeyin!

Cloud Code İşlevleri ile Express

Daha sonra, gerçek kod üzerinde çalışmaya başlayalım.

Dizininizi bulut olarak değiştirin ve içinde package.json dosyasını oluşturun:

Back4app modülleri npm üzerinden indirmek için bu dosyayı kullanır. Daha sonra istekleri ayrıştırmak için ihtiyacımız olacağı için body-parser ekledik.

Ardından, clouds klasöründe app.js adında başka bir dosya oluşturun:

Bu dosya Express’i başlatmak ve yapılandırmak için kullanılır. Ayrıca bir sonraki adımda akıl sağlığı kontrolü olarak kullanılacak bir uç nokta da tanımladık. Gördüğünüz gibi, Back4app bunu bizim için otomatik olarak yaptığından, uygulama tanımlamamıza veya herhangi bir bağımlılık gerektirmemize gerek kalmadı.

Ardından, uygulamayı dağıtın:

$ b4a deploy

Uploading source files
Uploading recent changes to scripts...
Finished uploading files
New release is named v1 (using Parse JavaScript SDK v2.2.25)

Bu komut kaynak dosyalarınızı Back4app’e yükleyecek, her şeyi yapılandıracak ve uygulamanızı önceki bölümde seçtiğiniz alt alan adında kullanılabilir hale getirecektir.

Çalıştığından emin olmak için favori web tarayıcınızı açın ve uygulamanıza gidin:

https://<your_subdomain>.b4a.app/

# Example
https://nodejsback4app.b4a.app/

Aşağıdaki yanıtı almalısınız:

İyi işti!

Sonraki bölümlerde, gerçek TODO uygulaması üzerinde çalışmaya başlayacağız.

ParseJS ile Veritabanı

TODO uygulaması için veritabanı modellerini tanımlayalım.

Back4app kontrol paneline gidin ve ekranın sol tarafındaki “Veritabanı “nı seçin. Bundan sonra “Yeni bir sınıf oluştur” seçeneğine tıklayın, adını Task koyun ve “Genel Okuma ve Yazma etkin” seçeneğini işaretlediğinizden emin olun:

Back4app yeni sınıf oluştur

Ardından, aşağıdaki sütunları ekleyin:

+-----------+-------------+---------------+----------+
| Data type | Name        | Default value | Required |
+-----------+-------------+---------------+----------+
| String    | name        | <leave blank> | yes      |
+-----------+-------------+---------------+----------+
| String    | description | <leave blank> | no       |
+-----------+-------------+---------------+----------+
| Boolean   | isDone      | false         | yes      |
+-----------+-------------+---------------+----------+

Uygulama Mantığı

Uygulama aşağıdaki uç noktalara sahip olacaktır:

  1. / görev listesini görüntüleme
  2. /create bir görev oluşturur
  3. /<ID> görev ayrıntılarını görüntüler
  4. /<ID>/delete bir görevi siler
  5. /<ID>/toggle görev durumunu değiştirir — yapıldı/yapılmadı

Onları yaratalım.

Bulut kodumuzu daha sürdürülebilir hale getirmek için iki dosyaya böleceğiz.

  1. app.js — Express sunucusunu başlatır ve yapılandırır
  2. routes.js — uç noktaları ve bunların mantığını tanımlar

Modern web uygulamaları oluşturmak için daha da iyi bir yaklaşım Model-View-Controller (MVC) mimari modelini kullanmaktır. Express ile iyi bir başlangıç express-generator kullanmaktır.

Devam edin ve app.js içeriğini aşağıdakilerle değiştirin:

  1. Twig’i varsayılan görünüm motoru olarak ayarladık.
  2. Rotalar artık bu dosyada değil, routes.js dosyasında tanımlanmaktadır.

Ardından, routes.js dosyasını oluşturun ve aşağıdaki kodu girin:

Yukarıda bahsedilen tüm rotaları tanımladık ve verileri işlemek ve depolamak için Parse’ı kullandık. Gördüğünüz gibi Parse’ın yanıt vermesini beklememiz gerektiğinden tüm rotalar asenkron. Ayrıca, bir şeylerin yanlış gitmesi ihtimaline karşı kodun çoğu try-catch bloklarına sarılmıştır.

ParseJS hakkında daha fazla bilgi için JavaScript Kılavuzu‘na göz atın.

Ardından, uç noktalara görünüm şablonlarıyla eşlik edelim.

Clouds klasörü içinde bir views klasörü oluşturun, şablon dosyalarını GitHub reposundan indirin ve views dizinine yerleştirin.

Nihai dizin yapınız aşağıdaki gibi görünmelidir:

nodejs-back4app/
├── cloud/
│   ├── views/
│   │   ├── base.twig
│   │   ├── create.twig
│   │   ├── error.twig
│   │   ├── index.twig
│   │   └── task.twig
│   ├── app.js
│   ├── routes.js
│   └── package.json
├── public
├── parse.local
└── parse.project

Son olarak, Twig desteğini etkinleştirmek için package.json ‘a twing ekleyin:

Uygulamayı dağıtın:

$ b4a deploy

Uploading source files
Uploading recent changes to scripts...
Finished uploading files
New release is named v2 (using Parse JavaScript SDK v2.2.25)

Ve işiniz bitti. Birkaç dakika bekleyin ve ardından her şeyin çalıştığından emin olmak için web uygulamasını ziyaret edin.

Kamu Dosyaları

Önceki bölümde belirtildiği gibi Back4app otomatik olarak ortak klasörde bulunan dosyaları sunar. Bunları şablonlarınızda kullanmak için Express ayarlarınızı biraz değiştirmeniz gerekecektir.

app.js dosyasına gidin ve aşağıdaki satırları ekleyin:

Daha sonra şablonlarınızdaki genel dosyalara göreli yol üzerinden referans verebilirsiniz:

<img src="/back4app.png" alt="Back4app Logo">

public/back4app.png içinde bulunan görüntüyü görüntüler.

Sonuç

Node, 2009 yılında piyasaya sürülmesinden bu yana sürekli olarak büyümekte ve gelişmektedir. Geliştiricilerin kolayca ölçeklenebilir yüksek performanslı uygulamalar oluşturmasına olanak tanıyan en iyi araçlardan biridir.

Node uygulamaları IaaS, PaaS ve SaaS gibi farklı çözümler üzerinde dağıtılabilir. Her birinin, dağıtım seçeneğini seçerken göz önünde bulundurulması gereken avantajları ve dezavantajları vardır.

Node uygulamalarını dağıtmanın en kolay yollarından biri, birçok özelliğe sahip açık kaynaklı bir BaaS çözümü olan Back4app’i kullanmaktır. Back4app, arka uç ve dağıtımını dış kaynak olarak kullanırken önemli olan şeylere odaklanmanıza izin verdiği için harikadır.

Son kaynak kodunu back4app-nodejs reposundan alın.

Node.js barındırma seçenekleri hakkında daha fazla bilgi edinmek için lütfen Konteyner kullanarak bir Node.JS uygulaması nasıl barındırılır bölümüne bakın.


Leave a reply

Your email address will not be published.