Node.js uygulamalarını dağıtmak bir güçlük olmamalıdır. Render'ın uygun maliyetli ve kullanıcı dostu platformuyla Express.js sunucunuzu çalışır duruma getirin.
2022'nin sonunda Heroku, ücretsiz katman seçeneğini sonlandırdı ve bunun sonucunda web barındırma ve ekosistemindeki diğer bulut hizmetleri için daha önce mevcut olan ücretsiz abonelik planı kaldırıldı.
Uygulamaları kısa bir süre için dağıtmayı ve barındırmayı düşünüyorsanız, ücretsiz katmanlar özellikle kullanışlı ve uygun maliyetlidir. Neyse ki, Heroku gibi bulut hizmetleri için diğer avantajların yanı sıra ücretsiz bir katman sunan alternatif bir bulut platformu var.
Bu makalede, bulut tabanlı bir barındırma platformu olan Render'da bir Express.js REST API'sinin nasıl dağıtılacağını keşfedeceğiz.
Render Nedir?
Render, statik web sitelerini, tam teşekküllü web uygulamalarını, arka uç API'lerini veya veritabanlarını bulutta dağıtmak ve yönetmek için sorunsuz ve sorunsuz bir yol sağlayan bir bulut barındırma platformudur. Özellikler şunları içerir:
- Kullanıcı dostu arayüz: Render, Python ve Node.js gibi popüler programlama dilleri kullanılarak oluşturulan uygulamaları dağıtma sürecini basitleştiren basit ve sezgisel bir arayüz sağlar.
- Yerleşik veritabanları: Render, PostgreSQL, MySQL ve MongoDB gibi popüler veritabanları için yerleşik destek sunarak, ayrı bir veritabanı kurmaya gerek kalmadan veritabanlarını kolayca kurabilir ve uygulamalara entegre edebilirsiniz sunucular.
- Sorunsuz dağıtım iş akışı: Render, GitHub ve GitLab gibi popüler hizmetlerle otomatik dağıtımlar, geri almalar ve entegrasyonlar gibi özellikler sağlar.
- Özel alanlar ve SSL: Render, web siteleri ve web uygulamaları için özel alan adları yapılandırma olanağı sunar ve güvenli HTTPS erişimi için ücretsiz SSL sertifikaları içerir.
Render ve Heroku Arasındaki Karşılaştırma
Diğer bulut platformları gibi, Render'ın da avantajları ve dezavantajları vardır. Ancak Heroku gibi popüler bulut çözümleriyle nasıl karşılaştırılır?
- Basitlik: Render, kullanım kolaylığı ve minimum yapılandırmaya odaklanarak uygulamaları dağıtmak ve yönetmek için kullanıcı dostu bir arayüz sağlar.
- otomatik ölçeklendirme: Render, manuel ayarlamalar veya karmaşık yapılandırma gerektirmeden uygulamaları talebe göre otomatik olarak ölçeklendirir.
- Maliyet etkinliği: Render, bireysel projeler için ücretsiz bir katman ve ekipler için nispeten düşük fiyatlandırma içeren uygun maliyetli fiyatlandırma sunar ve hem küçük ölçekli web uygulamalarını hem de büyük ticari uygulamaları barındırmak için bütçe dostu bir seçenek haline getirir. projeler.
- Sınırlı esneklik: Basitliği ve minimum yapılandırması, barındırma ortamı üzerinde daha fazla özelleştirme ve kontrol gerektiren gelişmiş ve karmaşık projeler için bir sınırlama olabilir.
Render'da Yeni Bir Proje Kurun
Başlamak için şuraya gidin: Render'ın web sitesi ve kaydolun ve hesabınıza giriş yapın.
Render, dağıtım sürecini kolaylaştıran popüler programlama dilleri ve web hizmetleri için yerleşik destek sunarak arka uç API'lerini dağıtmayı ve yönetmeyi kolaylaştırır.
Bu kılavuz, bir Express.js REST API dağıtmak için web hizmetleri özelliğini kullanacaktır. Devam etmek için, önce Render'da bir PostgreSQL veritabanı örneği kurmanız gerekecek.
Genel bakış sayfasında, Yeni PostgreSQL Yeni bir örnek ayarlamak için düğmesine basın.
Ardından, veritabanınızın adını girin ve tıklayın Veritabanı yarat. Son olarak, kopyalayın Dahili Veritabanı URL'si tedarik edilen. Express REST API'niz ile PostgreSQL veritabanı arasındaki bağlantıyı yapılandırmak için kullanacaksınız.
Temel olarak, Dahili Veritabanı URL'si, konuşlandırılmış bir API veya tam teşekküllü bir web uygulaması gibi Render'ın sunucularında çalışan uygulamalar arasında bir bağlantı kurmak için kullanılır.
Bununla birlikte, PostgreSQL veritabanını yalnızca başka bir platformda dağıtılan bir uygulamadan kullanmak istiyorsanız, Harici Veritabanı URL'si veritabanı bağlantısını yapılandırmak için.
Bir Express.js REST API'si oluşturun
Devam et ve bir Express.js web sunucusu oluşturun. Ardından, aşağıdaki paketleri kurun:
npm kurulum pg knex
Bu projenin kodunu burada bulabilirsiniz. GitHub deposu.
Veritabanı Bağlantısını Yapılandırma
Express.js API ile Render'ın PostgreSQL örneği arasındaki bağlantıyı kurmak için proje klasörünüzün kök dizininde bir db.js dosyasını açın ve aşağıdaki kodu ekleyin.
sabit diz = gerekmek("diz");
sabit db = diz({
müşteri: 'pg',
bağlantı: {
Bağlantı dizisi: 'veritabanı URL'si',
ssl: {
Yetkisiz reddetme: YANLIŞ
}
}
});modül.export = db;
Ardından, index.js dosyasını açın ve bunun altındaki kodu ekleyin basit bir REST API uygular dört yol ile.
sabit ifade = gerekmek("ifade etmek");
sabit uygulama = ekspres()
sabit veri tabanı = gerekmek('./db')
sabit PORT = işlem.env. LİMAN || 5000app.use (express.json())
app.use (express.urlencoded({ uzatılmış: doğru }))uygulama.get('/', (req, res) => res.send('Selam Dünya!' ))
// Tüm kullanıcıları al
uygulama.get('/kullanıcılar', zaman uyumsuz (gerekli, res) => {
denemek {
sabit kullanıcılar = beklemek db.select().from('kullanıcılar')
res.json (kullanıcılar)
} yakalamak (hata) {
konsol.hata (hata)
res.status(500).json({ İleti: "Kullanıcılar alınırken hata oluştu" })
}
})
uygulama.post('/kullanıcılar', zaman uyumsuz (gerekli, res) => {
denemek {
sabit kullanıcı = beklemek db('kullanıcılar').sokmak({ isim: req.body.name }).geri dönen('*')
res.json (kullanıcı)
} yakalamak (hata) {
konsol.hata (hata)
res.status(500).json({ İleti: "Kullanıcı oluşturulurken hata oluştu" })
}
})// Mevcut bir kullanıcıyı sil
uygulama.sil('/kullanıcılar/:kimlik', zaman uyumsuz (gerekli, res) => {
denemek {
sabit { id } = gereksinim.paramlar
sabit kullanıcı = beklemek db('kullanıcılar').where({ id }).delete().returning('*')
res.json (kullanıcı)
} yakalamak (hata) {
konsol.hata (hata)
res.status(500).json({ İleti: "Kullanıcı silinirken hata oluştu" })
}
})
app.listen (BAĞLANTI NOKTASI, () => konsol.kayıt(`Sunucu PORT'ta:${PORT}`))
Migrate.js Dosyasını Kurun
Yeni bir klasör oluşturun, Kodlar, projenizin kök dizinine yeni bir dosya ekleyin, geçiş.js, ve son olarak aşağıdaki kodu ekleyin:
sabit veri tabanı = gerekmek('../db');
(zaman uyumsuz () => {
denemek {
beklemek db.schema.dropTableIfExists('kullanıcılar')
beklemek db.schema.withSchema('halk').Tablo oluştur('kullanıcılar', (tablo) => {
tablo.increments()
tablo.dize('isim')
})
konsol.kayıt("Kullanıcılar tablosu oluşturuldu!")
işlem.çıkış(0)
} yakalamak (hata) {
konsol.log (hata)
işlem.çıkış(1)
}
})()
Bu kod yeni bir oluşturacak kullanıcılar veritabanındaki iki sütunlu tablo: otomatik artan bir birincil anahtar alanı ve bir ad alanı.
Son olarak, bu komutları paket.json dosya.
"Kodlar": {
"başlangıç": "düğüm indeksi.js",
"göç": "düğüm betikleri/migrate.js",
},
Son olarak veritabanı üzerinde kullanıcının tablosunu oluşturmak için aşağıdaki komutu çalıştırmanız gerekmektedir. geçiş.js aşağıdaki komutu kullanarak terminalinizde bir komut dosyası olarak dosyalayın.
npm taşımayı çalıştır
Ancak, komutu çalıştırmadan önce, Harici Veritabanı URL'si Render'ın PostgreSQL örnek ayarları bilgisinden kopyalayın ve bunu db.js dosya, bağlantı dizesi olarak.
Bu, yerel makinenizden veritabanı örneğiyle bir bağlantı kurarak API'yi dağıtmadan önce tabloyu oluşturmanıza olanak tanır. Tablo oluşturulduktan sonra, Render'ınızın PostgreSQL örneğine gidebilir, Dahili Veritabanı URL'sive güncelleyin db.js buna göre dosyalayın.
Render'da REST API'yi dağıtın
Birinci, GitHub'da yeni bir depo oluşturun ve proje kodunu itin. Ardından, Render hesabınıza giriş yapın, tıklayın Yeni+ düğmesini seçin ve İnternet servisi açılır menüden seçeneği.
Son olarak GitHub hesabınıza erişin, projenizin havuzunu seçin ve Render'da ona bağlanın.
Web hizmeti ayarları sayfasında, yeni hizmet için bir ad girin, projenin kök dizinini, oluştur ve başlat komutunu belirtin ve son olarak üzerine tıklayın. Web Hizmeti Oluştur. Dağıtım işlemi tamamlandıktan sonra, Postman'daki uç noktaları test etmek için sağlanan URL'yi kopyalayın.
Postman'da API Uç Noktalarını Test Edin
Postman, API'leri geliştirmek ve test etmek için popüler bir araçtır. Postman'ı tanımak için, bir API'yi test etmek için nasıl kullanılacağını öğrenin.
Dağıtılan API'yi test etmek için bir POSTALAMAK istek /kullanıcılar PostgreSQL veritabanında veri depolamak için uç nokta.
Son olarak, saklanan verileri almak için bir GET isteği yapın.
Render Uygulanabilir Bir Alternatif mi?
Render, basit bir kurulum süreci ve popüler sürüm kontrol sistemleriyle sorunsuz entegrasyon sağlayarak onu iyi bir alternatif bulut barındırma platformu haline getirir.
Ayrıca, rekabetçi fiyatlandırma modeli ve popüler geliştirme araçları için yerleşik desteği, onu hem yan projeler hem de büyük ticari uygulamalar için güvenilir ve kullanıcı dostu bir seçenek haline getiriyor.