Nasazení aplikací Node.js by nemělo být obtížné. Zprovozněte svůj Express.js server pomocí cenově efektivní a uživatelsky přívětivé platformy Render.

Na konci roku 2022 společnost Heroku ukončila svou bezplatnou možnost úrovně, což vedlo k odstranění dříve dostupného bezplatného plánu předplatného pro webhosting a další cloudové služby ve svém ekosystému.

Bezplatné úrovně jsou zvláště praktické a nákladově efektivní, pokud máte v úmyslu nasadit a hostovat aplikace na krátkou dobu. Naštěstí existuje alternativní cloudová platforma, která stejně jako Heroku nabízí mimo jiné bezplatnou úroveň pro své cloudové služby.

V tomto článku prozkoumáme, jak nasadit Express.js REST API na Render, cloudové hostingové platformě.

Co je Render?

Render je cloudová hostingová platforma, která poskytuje bezproblémový a bezproblémový způsob nasazení a správy statických webů, plnohodnotných webových aplikací, backendových rozhraní API nebo databází v cloudu. Mezi funkce patří:

  • Uživatelsky přívětivé rozhraní: Render poskytuje jednoduché a intuitivní rozhraní, které zjednodušuje proces nasazení aplikací vytvořených pomocí oblíbených programovacích jazyků, jako jsou Python a Node.js.
    instagram viewer
  • Vestavěné databáze: Render nabízí vestavěnou podporu pro oblíbené databáze, jako je PostgreSQL, MySQL a MongoDB, díky čemuž je snadné nastavení a integrace databází do aplikací bez nutnosti nastavení samostatné databáze servery.
  • Plynulý pracovní postup nasazení: Render poskytuje funkce, jako jsou automatizovaná nasazení, vrácení zpět a integrace s oblíbenými službami, jako jsou GitHub a GitLab.
  • Vlastní domény a SSL: Render nabízí možnost konfigurovat vlastní názvy domén pro webové stránky a webové aplikace a zahrnuje bezplatné certifikáty SSL pro bezpečný přístup HTTPS.

Srovnání mezi Render a Heroku

Stejně jako ostatní cloudové platformy má i Render své výhody a nevýhody. Ale jak si stojí v porovnání s populárními cloudovými řešeními, jako je Heroku?

  • Jednoduchost: Render poskytuje uživatelsky přívětivé rozhraní pro nasazení a správu aplikací se zaměřením na snadné použití a minimální konfiguraci.
  • Automatické škálování: Render automaticky škáluje aplikace na základě požadavku, aniž by vyžadoval ruční úpravy nebo složitou konfiguraci.
  • Efektivita nákladů: Render nabízí cenově výhodné ceny, které zahrnují bezplatnou úroveň pro jednotlivé projekty a relativně nízké ceny pro týmy a organizační plány, což z něj činí cenově výhodnou možnost pro hostování jak malých webových aplikací, tak i velkých komerčních projekty.
  • Omezená flexibilita: Jeho jednoduchost a minimální konfigurace může být omezením pro pokročilé a složité projekty, které vyžadují větší přizpůsobení a kontrolu nad hostitelským prostředím.

Nastavte nový projekt v Renderu

Chcete-li začít, přejděte na Web Render a zaregistrujte se a přihlaste se ke svému účtu.

Render usnadňuje nasazení a správu backendových rozhraní API tím, že nabízí vestavěnou podporu pro oblíbené programovací jazyky a webové služby, které zjednodušují proces nasazení.

Tato příručka využije její funkci webových služeb k nasazení Express.js REST API. Abyste mohli pokračovat, budete muset nejprve nastavit instanci databáze PostgreSQL na Renderu.

Na stránce přehledu klikněte na Nový PostgreSQL tlačítko pro nastavení nové instance.

Dále vyplňte název vaší databáze a klikněte na Vytvořit databázi. Nakonec zkopírujte Adresa URL interní databáze pokud. Budete jej používat ke konfiguraci spojení mezi vaším Express REST API a databází PostgreSQL.

Adresa URL interní databáze se v podstatě používá k navázání spojení mezi aplikacemi běžícími na serverech Render, jako je nasazené API nebo plnohodnotná webová aplikace.

Pokud však chcete databázi PostgreSQL využívat pouze z aplikace nasazené na jiné platformě, můžete použít Adresa URL externí databáze pro konfiguraci připojení k databázi.

Vytvořte rozhraní REST API Express.js

Pokračujte a vytvořit webový server Express.js. Dále nainstalujte následující balíčky:

npm nainstalovat pg knex

Zde najdete kód tohoto projektu úložiště GitHub.

Nakonfigurujte připojení k databázi

Chcete-li nastavit připojení mezi Express.js API a instancí Render PostgreSQL, v kořenovém adresáři složky projektu vytvořte db.js soubor a přidejte kód níže.

konst knex = vyžadovat('knex');
konst db = knex({
klient: 'pg',
připojení: {
connectionString: 'adresa URL databáze',
ssl: {
odmítnout neoprávněně: Nepravdivé
}
}
});

modul.export = db;

Dále otevřete index.js soubor a přidejte kód níže implementuje jednoduché REST API se čtyřmi trasami.

konst vyjádřit = vyžadovat("vyjádřit");
konst app = express()
konst db = vyžadovat('./db')
konst PORT = process.env. PORT || 5000

app.use (express.json())
app.use (express.urlencoded({ prodloužený: skutečný }))

app.get('/', (req, res) => req.send('Ahoj světe!' ))

// Získejte všechny uživatele
app.get('/users', asynchronní (req, res) => {
Snaž se {
konst uživatelé = čekat db.select().from('uživatelé')
res.json (uživatelé)
} chytit (chyba) {
řídicí panel.chyba (chyba)
res.status(500.json({ zpráva: "Chyba při načítání uživatelů" })
}
})


app.post('/users', asynchronní (req, res) => {
Snaž se {
konst uživatel = čekat db('uživatelé').vložit({ název: req.body.name }).returning('*')
res.json (uživatel)
} chytit (chyba) {
řídicí panel.chyba (chyba)
res.status(500.json({ zpráva: 'Chyba při vytváření uživatele' })
}
})

// Smazání existujícího uživatele
app.delete('/users/:id', asynchronní (req, res) => {
Snaž se {
konst { id } = req.params
konst uživatel = čekat db('uživatelé').where({ id }).delete().returning('*')
res.json (uživatel)
} chytit (chyba) {
řídicí panel.chyba (chyba)
res.status(500.json({ zpráva: 'Chyba při mazání uživatele' })
}
})

app.listen (PORT, () => řídicí panel.log(`Server nahoře na PORT:${PORT}`))

Nastavte soubor migrate.js

Vytvořit novou složku, skripty, v kořenovém adresáři vašeho projektu přidejte nový soubor, migrate.js, a nakonec přidejte kód níže:

konst db = vyžadovat('../db');
(asynchronní () => {
Snaž se {
čekat db.schema.dropTableIfExists('uživatelé')
čekat db.schema.withSchema('veřejnost').createTable('uživatelé', (tabulka) => {
table.increments()
tabulka.string('název')
})
řídicí panel.log('Vytvořená tabulka uživatelů!')
process.exit(0)
} chytit (chyba) {
řídicí panel.log (chyba)
process.exit(1)
}
})()

Tento kód vytvoří nový uživatelů tabulka v databázi se dvěma sloupci: pole primárního klíče s automatickým zvyšováním a pole názvu.

Nakonec přidejte tyto příkazy do svého package.json soubor.

"skripty": {
"Start": "node index.js",
"migrovat": "node scripts/migrate.js",
},

A konečně, abyste mohli vytvořit uživatelskou tabulku v databázi, musíte spustit migrate.js soubor jako skript na vašem terminálu pomocí příkazu níže.

npm spustit migraci

Před spuštěním příkazu však nezapomeňte načíst soubor Adresa URL externí databáze z informací o nastavení instance PostgreSQL Render a vložte je do db.js soubor jako připojovací řetězec.

Tím vytvoříte spojení s instancí databáze z vašeho místního počítače, což vám umožní vytvořit tabulku před nasazením rozhraní API. Jakmile je tabulka vytvořena, můžete přejít do instance PostgreSQL vašeho Renderu a načíst ji Adresa URL interní databázea aktualizujte db.js soubor podle toho.

Nasaďte REST API na Render

První, vytvořit nové úložiště na GitHubu a odeslat kód projektu. Dále se přihlaste ke svému účtu Render a klikněte na Nové+ a vyberte Webová služba možnost z rozbalovací nabídky.

Nakonec přejděte ke svému účtu GitHub, vyberte úložiště projektu a připojte se k němu v Renderu.

Na stránce nastavení webové služby zadejte název nové služby, zadejte kořenový adresář projektu, příkaz build and start a nakonec klikněte na Vytvořit webovou službu. Po dokončení procesu nasazení zkopírujte poskytnutou adresu URL a otestujte koncové body na Postman.

Otestujte koncové body API na Postman

Postman je oblíbený nástroj pro vývoj a testování API. Chcete-li se seznámit s Postmanem, zjistěte, jak jej používat k testování API.

Chcete-li otestovat nasazené rozhraní API, proveďte a POŠTA žádost na /uživatelů koncový bod pro ukládání dat v databázi PostgreSQL.

Nakonec proveďte požadavek GET k načtení uložených dat.

Je Render schůdnou alternativou?

Render poskytuje přímočarý proces nastavení a bezproblémovou integraci s oblíbenými systémy správy verzí, což z něj dělá dobrou alternativní cloudovou hostingovou platformu.

Navíc jeho konkurenční cenový model a vestavěná podpora oblíbených vývojových nástrojů z něj činí spolehlivou a uživatelsky přívětivou volbu pro vedlejší projekty i velké komerční aplikace.