Nasadenie aplikácií Node.js by nemalo byť problémom. Uveďte svoj server Express.js do prevádzky pomocou nákladovo efektívnej a užívateľsky prívetivej platformy Render.

Na konci roku 2022 spoločnosť Heroku prerušila svoju bezplatnú možnosť, čo viedlo k odstráneniu predtým dostupného bezplatného plánu predplatného pre webhosting a ďalšie cloudové služby vo svojom ekosystéme.

Bezplatné vrstvy sú obzvlášť praktické a nákladovo efektívne, ak plánujete nasadiť a hostiť aplikácie na krátke obdobie. Našťastie existuje alternatívna cloudová platforma, ktorá, podobne ako Heroku, okrem iných výhod ponúka aj bezplatnú úroveň pre svoje cloudové služby.

V tomto článku sa pozrieme na to, ako nasadiť Express.js REST API na Render, cloudovej hostingovej platforme.

Čo je to render?

Render je cloudová hostingová platforma, ktorá poskytuje bezproblémový a bezproblémový spôsob nasadenia a správy statických webových stránok, plnohodnotných webových aplikácií, backendových rozhraní API alebo databáz v cloude. Medzi funkcie patrí:

instagram viewer
  • Užívateľsky prívetivé rozhranie: Render poskytuje jednoduché a intuitívne rozhranie, ktoré zjednodušuje proces nasadzovania aplikácií vytvorených pomocou populárnych programovacích jazykov, ako sú Python a Node.js.
  • Vstavané databázy: Render ponúka vstavanú podporu pre populárne databázy ako PostgreSQL, MySQL a MongoDB, vďaka čomu je jednoduché nastavenie a integrácia databáz do aplikácií bez nutnosti nastavovania samostatnej databázy serverov.
  • Plynulý pracovný postup nasadenia: Render poskytuje funkcie, ako sú automatické nasadenia, návraty a integrácie s populárnymi službami, ako sú GitHub a GitLab.
  • Vlastné domény a SSL: Render ponúka možnosť konfigurovať vlastné názvy domén pre webové stránky a webové aplikácie a zahŕňa bezplatné certifikáty SSL pre bezpečný prístup HTTPS.

Porovnanie medzi Render a Heroku

Rovnako ako ostatné cloudové platformy, aj Render má svoje výhody a nevýhody. Ako sa však porovnáva s populárnymi cloudovými riešeniami, ako je Heroku?

  • Jednoduchosť: Render poskytuje užívateľsky prívetivé rozhranie na nasadenie a správu aplikácií so zameraním na jednoduchosť použitia a minimálnu konfiguráciu.
  • Automatické škálovanie: Render automaticky škáluje aplikácie na základe dopytu bez potreby manuálnych úprav alebo zložitej konfigurácie.
  • Efektivita nákladov: Render ponúka cenovo výhodné ceny, ktoré zahŕňajú bezplatnú úroveň pre jednotlivé projekty a relatívne nízke ceny pre tímy a organizačné plány, vďaka čomu je cenovo výhodnou možnosťou pre hosťovanie malých webových aplikácií aj veľkých komerčných projektov.
  • Obmedzená flexibilita: Jeho jednoduchosť a minimálna konfigurácia môže byť obmedzením pre pokročilé a zložité projekty, ktoré vyžadujú viac prispôsobenia a kontroly nad hostiteľským prostredím.

Nastavte nový projekt v Renderi

Ak chcete začať, prejdite na stránku Webová stránka Renderu a zaregistrujte sa a prihláste sa do svojho účtu.

Render uľahčuje nasadenie a správu backendových rozhraní API tým, že ponúka vstavanú podporu pre obľúbené programovacie jazyky a webové služby, ktoré zefektívňujú proces nasadenia.

Táto príručka bude využívať funkciu webových služieb na nasadenie Express.js REST API. Ak chcete pokračovať, budete musieť najprv nastaviť inštanciu databázy PostgreSQL na Render.

Na stránke prehľadu kliknite na Nový PostgreSQL tlačidlo na nastavenie novej inštancie.

Ďalej vyplňte názov vašej databázy a kliknite na Vytvorte databázu. Nakoniec skopírujte Adresa URL internej databázy poskytnuté. Budete ho používať na konfiguráciu spojenia medzi vašim Express REST API a databázou PostgreSQL.

Adresa URL internej databázy sa v podstate používa na vytvorenie spojenia medzi aplikáciami bežiacimi na serveroch Render, ako je nasadené API alebo plnohodnotná webová aplikácia.

Ak však chcete použiť len databázu PostgreSQL z aplikácie nasadenej na inej platforme, môžete použiť Adresa URL externej databázy na konfiguráciu pripojenia k databáze.

Vytvorte rozhranie REST API Express.js

Pokračujte a vytvorte webový server Express.js. Ďalej nainštalujte nasledujúce balíky:

npm nainštalovať pg knex

Kód tohto projektu nájdete v tomto úložisko GitHub.

Nakonfigurujte pripojenie k databáze

Ak chcete nastaviť spojenie medzi Express.js API a inštanciou PostgreSQL Render, v koreňovom adresári priečinka projektu vytvorte db.js súbor a pridajte kód nižšie.

konšt knex = vyžadovať('knex');
konšt db = knex({
zákazník: 'pg',
pripojenie: {
connectionString: 'adresa URL databázy',
ssl: {
odmietnuťNeoprávnené: falošný
}
}
});

modul.export = db;

Ďalej otvorte index.js súbor a pridajte kód pod ním implementuje jednoduché REST API so štyrmi trasami.

konšt vyjadriť = vyžadovať("expresné");
konšt app = express()
konšt db = vyžadovať('./db')
konšt PORT = process.env. PORT || 5000

app.use (express.json())
app.use (express.urlencoded({ predĺžený: pravda }))

app.get('/', (req, res) => req.send("Ahoj Svet!" ))

// Získať všetkých používateľov
app.get('/users', async (req, res) => {
skúste {
konšt užívatelia = čakať db.select().from('používatelia')
res.json (používatelia)
} chytiť (chyba) {
konzoly.chyba (chyba)
res.status(500.json({ správu: „Chyba pri načítavaní používateľov“ })
}
})


app.post('/users', async (req, res) => {
skúste {
konšt užívateľ = čakať db('používatelia').insert({ názov: req.body.name }).returning('*')
res.json (používateľ)
} chytiť (chyba) {
konzoly.chyba (chyba)
res.status(500.json({ správu: „Chyba pri vytváraní používateľa“ })
}
})

// Odstránenie existujúceho používateľa
app.delete('/users/:id', async (req, res) => {
skúste {
konšt { id } = req.params
konšt užívateľ = čakať db('používatelia').where({ id }).delete().returning('*')
res.json (používateľ)
} chytiť (chyba) {
konzoly.chyba (chyba)
res.status(500.json({ správu: „Chyba pri odstraňovaní používateľa“ })
}
})

app.listen (PORT, () => konzoly.log(`Server hore na PORT:${PORT}`))

Nastavte súbor migrate.js

Vytvorte nový priečinok, skripty, do koreňového adresára svojho projektu pridajte nový súbor, migrate.js, a nakoniec pridajte kód nižšie:

konšt db = vyžadovať('../db');
(async () => {
skúste {
čakať db.schema.dropTableIfExists('používatelia')
čakať db.schema.withSchema('verejné').createTable('používatelia', (tabuľka) => {
table.increments()
table.string('názov')
})
konzoly.log('Vytvorená tabuľka používateľov!')
process.exit(0)
} chytiť (chyba) {
konzoly.log (chyba)
process.exit(1)
}
})()

Tento kód vytvorí nový používateľov tabuľka v databáze s dvoma stĺpcami: automaticky sa zvyšujúcim poľom primárneho kľúča a poľom názvu.

Nakoniec pridajte tieto príkazy do svojho package.json súbor.

"skriptá": {
"štart": "node index.js",
"migrovať": "node scripts/migrate.js",
},

Nakoniec, aby ste vytvorili tabuľku používateľa v databáze, musíte spustiť migrate.js súbor ako skript na vašom termináli pomocou príkazu nižšie.

npm spustiť migráciu

Pred spustením príkazu sa však uistite, že ste načítali súbor Adresa URL externej databázy z informácií o nastaveniach inštancie PostgreSQL Render a vložte ich do db.js súbor ako reťazec pripojenia.

Tým sa vytvorí spojenie s inštanciou databázy z vášho lokálneho počítača, čo vám umožní vytvoriť tabuľku pred nasadením API. Po vytvorení tabuľky môžete prejsť do inštancie PostgreSQL vášho Renderu a získať ju Adresa URL internej databázya aktualizujte db.js súbor podľa toho.

Nasaďte REST API na Render

Najprv, vytvorte nové úložisko na GitHub a zatlačte kód projektu. Potom sa prihláste do svojho účtu Render a kliknite na Nové+ a vyberte položku Webová služba možnosť z rozbaľovacej ponuky.

Nakoniec prejdite na svoj účet GitHub, vyberte úložisko projektu a pripojte sa k nemu v Renderi.

Na stránke nastavení webovej služby zadajte názov novej služby, zadajte koreňový adresár projektu, príkaz build and start a nakoniec kliknite na Vytvorte webovú službu. Po dokončení procesu nasadenia skopírujte poskytnutú adresu URL a otestujte koncové body na Postman.

Otestujte koncové body API na Postman

Postman je populárny nástroj na vývoj a testovanie API. Aby ste sa zoznámili s Postmanom, Naučte sa, ako ho použiť na testovanie API.

Ak chcete otestovať nasadené API, urobte a POST žiadosť na /používateľov koncový bod na ukladanie údajov do databázy PostgreSQL.

Nakoniec zadajte požiadavku GET na získanie uložených údajov.

Je render životaschopnou alternatívou?

Render poskytuje jednoduchý proces nastavenia a bezproblémovú integráciu s populárnymi systémami na správu verzií, čo z neho robí dobrú alternatívnu cloudovú hostingovú platformu.

Navyše, jeho konkurenčný cenový model a vstavaná podpora populárnych vývojových nástrojov z neho robia spoľahlivú a užívateľsky príjemnú možnosť pre vedľajšie projekty aj veľké komerčné aplikácie.