Implementacija Node.js aplikacija ne bi trebala biti gnjavaža. Pokrenite svoj Express.js poslužitelj s Renderovom ekonomičnom platformom prilagođenom korisniku.

Krajem 2022. Heroku je ukinuo svoju opciju besplatne razine što je rezultiralo uklanjanjem prethodno dostupnog besplatnog plana pretplate za web hosting i druge usluge u oblaku u njegovom ekosustavu.

Besplatne razine posebno su praktične i isplative ako namjeravate implementirati i ugostiti aplikacije na kratko razdoblje. Srećom, postoji alternativna platforma u oblaku koja, poput Herokua, među ostalim pogodnostima nudi besplatnu razinu za svoje usluge u oblaku.

U ovom ćemo članku istražiti kako implementirati Express.js REST API na Renderu, platformi za hosting temeljenoj na oblaku.

Što je renderiranje?

Render je platforma za hosting u oblaku koja pruža besprijekoran i jednostavan način za postavljanje i upravljanje statičnim web-mjestima, potpunim web-aplikacijama, pozadinskim API-jima ili bazama podataka u oblaku. Značajke uključuju:

instagram viewer
  • User-friendly sučelje: Render pruža jednostavno i intuitivno sučelje koje pojednostavljuje proces postavljanja aplikacija izgrađenih pomoću popularnih programskih jezika kao što su Python i Node.js.
  • Ugrađene baze podataka: Render nudi ugrađenu podršku za popularne baze podataka kao što su PostgreSQL, MySQL i MongoDB, čineći jednostavno postavljanje i integracija baza podataka u aplikacije bez potrebe za postavljanjem zasebne baze podataka poslužitelji.
  • Besprijekoran tijek rada implementacije: Render pruža značajke kao što su automatizirane implementacije, vraćanja i integracije s popularnim servisima kao što su GitHub i GitLab.
  • Prilagođene domene i SSL: Render nudi mogućnost konfiguriranja prilagođenih naziva domena za web stranice i web aplikacije te uključuje besplatne SSL certifikate za siguran HTTPS pristup.

Usporedba između Rendera i Herokua

Kao i druge platforme u oblaku, Render ima svoje prednosti i nedostatke. Ali kakav je u usporedbi s popularnim rješenjima u oblaku kao što je Heroku?

  • Jednostavnost: Render pruža korisničko sučelje za postavljanje i upravljanje aplikacijama, s fokusom na jednostavnost korištenja i minimalnu konfiguraciju.
  • Automatizirano skaliranje: Render automatski skalira aplikacije na temelju zahtjeva, bez potrebe za ručnim podešavanjem ili složenom konfiguracijom.
  • Isplativost: Render nudi ekonomične cijene koje uključuju besplatnu razinu za pojedinačne projekte i relativno niske cijene za timove i organizacijski planovi, što ga čini proračunski prihvatljivom opcijom za hosting i malih web aplikacija i velikih komercijalnih aplikacija projekti.
  • Ograničena fleksibilnost: Njegova jednostavnost i minimalna konfiguracija mogu biti ograničenje za napredne i složene projekte koji zahtijevaju veću prilagodbu i kontrolu nad hosting okruženjem.

Postavite novi projekt na renderu

Za početak prijeđite na Renderovo web mjesto te se prijavite i prijavite na svoj račun.

Render olakšava implementaciju i upravljanje pozadinskim API-jima nudeći ugrađenu podršku za popularne programske jezike i web usluge koje pojednostavljuju proces implementacije.

Ovaj će vodič iskoristiti značajku web-usluga za implementaciju Express.js REST API-ja. Da biste nastavili, prvo ćete morati postaviti instancu PostgreSQL baze podataka na Renderu.

Na stranici pregleda kliknite na Novi PostgreSQL gumb za postavljanje nove instance.

Zatim unesite naziv vaše baze podataka i kliknite na Stvorite bazu podataka. Na kraju kopirajte URL interne baze podataka pod uvjetom. Koristit ćete ga za konfiguriranje veze između vašeg Express REST API-ja i PostgreSQL baze podataka.

U osnovi, URL interne baze podataka koristi se za uspostavljanje veze između aplikacija koje se izvode na Renderovim poslužiteljima, kao što je implementirani API ili potpuna web aplikacija.

Unatoč tome, ako samo želite koristiti PostgreSQL bazu podataka iz aplikacije postavljene na drugoj platformi, možete koristiti URL vanjske baze podataka za konfiguriranje veze s bazom podataka.

Napravite Express.js REST API

Samo naprijed i stvoriti Express.js web poslužitelj. Zatim instalirajte sljedeće pakete:

npm instalirati str knex

Ovdje možete pronaći kod ovog projekta GitHub spremište.

Konfigurirajte vezu s bazom podataka

Da biste postavili vezu između Express.js API-ja i Renderove PostgreSQL instance, u korijenskom direktoriju mape vašeg projekta stvorite db.js datoteku i dodajte kod u nastavku.

konst knex = zahtijevati('knex');
konst db = knex({
klijent: 'pg',
veza: {
niz veze: 'URL baze podataka',
ssl: {
odbaci Neovlašteno: lažno
}
}
});

modul.izvozi = db;

Zatim otvorite index.js datoteku i dodajte kod ispod nje implementira jednostavan REST API sa četiri rute.

konst izraziti = zahtijevati("izraziti");
konst app = express()
konst db = zahtijevati('./db')
konst LUKA = proces.env. LUKA || 5000

app.use (express.json())
app.use (express.urlencoded({ proširena: pravi }))

app.get('/', (req, res) => res.send('Pozdrav svijete!' ))

// Dohvati sve korisnike
app.get('/korisnici', asinkroni (req, res) => {
probati {
konst korisnici = čekati db.select().from('korisnici')
res.json (korisnici)
} ulov (pogreška) {
konzola.greška (greška)
res.status(500).json({ poruka: 'Pogreška pri dohvaćanju korisnika' })
}
})


app.post('/korisnici', asinkroni (req, res) => {
probati {
konst korisnik = čekati db('korisnici').umetnuti({ Ime: req.body.name }).returning('*')
res.json (korisnik)
} ulov (pogreška) {
konzola.greška (greška)
res.status(500).json({ poruka: 'Pogreška pri stvaranju korisnika' })
}
})

// Brisanje postojećeg korisnika
app.delete('/korisnici/:id', asinkroni (req, res) => {
probati {
konst { id } = req.params
konst korisnik = čekati db('korisnici').where({ id }).delete().returning('*')
res.json (korisnik)
} ulov (pogreška) {
konzola.greška (greška)
res.status(500).json({ poruka: 'Pogreška pri brisanju korisnika' })
}
})

app.listen (PORT, () => konzola.log(`Poslužitelj na PORT-u:${PORT}`))

Postavite datoteku migrate.js

Stvorite novu mapu, skripte, u korijenski direktorij vašeg projekta dodajte novu datoteku, migrirati.js, i na kraju dodajte kod ispod:

konst db = zahtijevati('../db');
(asinkroni () => {
probati {
čekati db.schema.dropTableIfExists('korisnici')
čekati db.schema.withSchema('javnost').createTable('korisnici', (tablica) => {
table.increments()
table.string('Ime')
})
konzola.log('Stvorena tablica korisnika!')
proces.izlaz(0)
} ulov (pogreška) {
konzola.log (pogreška)
proces.izlaz(1)
}
})()

Ovaj kod će stvoriti novi korisnika tablica u bazi podataka s dva stupca: polje primarnog ključa s automatskim povećanjem i polje imena.

Na kraju dodajte ove naredbe u svoj paket.json datoteka.

"skripte": {
"početak": "indeks čvora.js",
"migrirati": "skripte čvora/migrate.js",
},

Na kraju, da biste kreirali korisničku tablicu u bazi podataka, trebate pokrenuti migrirati.js datoteku kao skriptu na vašem terminalu koristeći donju naredbu.

npm pokrenuti migraciju

Međutim, prije pokretanja naredbe svakako dohvatite URL vanjske baze podataka iz Renderovih informacija o postavkama PostgreSQL instance i zalijepite ih u db.js datoteku kao niz veze.

Ovo će uspostaviti vezu s instancom baze podataka s vašeg lokalnog računala, omogućujući vam stvaranje tablice prije postavljanja API-ja. Nakon što je tablica stvorena, možete prijeći na svoju Renderovu PostgreSQL instancu, dohvatiti URL interne baze podataka, i ažurirajte db.js datoteku prema tome.

Implementirajte REST API na Render

Prvi, stvoriti novo spremište na GitHubu i gurnite kod projekta. Zatim se prijavite na svoj račun Render, kliknite na Novo+ i odaberite Web usluga opciju iz padajućeg izbornika.

Konačno, pristupite svom GitHub računu, odaberite repozitorij svog projekta i povežite se s njim na Renderu.

Na stranici s postavkama web usluge unesite naziv za novu uslugu, odredite korijenski direktorij projekta, naredbu za izgradnju i pokretanje i na kraju kliknite na Stvorite web uslugu. Nakon dovršetka procesa implementacije kopirajte navedeni URL za testiranje krajnjih točaka na Postmanu.

Testirajte krajnje točke API-ja na Postmanu

Postman je popularan alat za razvoj i testiranje API-ja. Da biste se upoznali s Poštarom, naučite kako ga koristiti za testiranje API-ja.

Da biste testirali implementirani API, napravite a POST zahtjev za /korisnika endpoint za pohranu podataka u PostgreSQL bazu podataka.

Na kraju, napravite GET zahtjev za dohvaćanje pohranjenih podataka.

Je li Render održiva alternativa?

Render pruža jednostavan postupak postavljanja i besprijekornu integraciju s popularnim sustavima kontrole verzija što ga čini dobrom alternativnom platformom za hosting u oblaku.

Štoviše, njegov konkurentni cjenovni model i ugrađena podrška za popularne razvojne alate čine ga pouzdanom i korisniku jednostavnom opcijom za sporedne projekte i velike komercijalne aplikacije.