Implementarea aplicațiilor Node.js nu ar trebui să fie o bătaie de cap. Puneți-vă serverul Express.js în funcțiune cu platforma Render rentabilă și ușor de utilizat.

La sfârșitul anului 2022, Heroku și-a întrerupt opțiunea de nivel gratuit, ceea ce a dus la eliminarea planului de abonament gratuit disponibil anterior pentru găzduire web și alte servicii cloud din ecosistemul său.

Nivelurile gratuite sunt deosebit de utile și rentabile dacă intenționați să implementați și să găzduiți aplicații pentru o perioadă scurtă. Din fericire, există o platformă cloud alternativă care, precum Heroku, oferă un nivel gratuit pentru serviciile sale cloud, printre alte avantaje.

În acest articol, vom explora cum să implementăm un API REST Express.js pe Render, o platformă de găzduire bazată pe cloud.

Ce este Render?

Render este o platformă de găzduire în cloud care oferă o modalitate simplă și fără probleme de a implementa și gestiona site-uri web statice, aplicații web cu drepturi depline, API-uri backend sau baze de date în cloud. Caracteristicile includ:

instagram viewer
  • Interfață ușor de utilizat: Render oferă o interfață simplă și intuitivă care simplifică procesul de implementare a aplicațiilor create folosind limbaje de programare populare, cum ar fi Python și Node.js.
  • Baze de date încorporate: Render oferă suport încorporat pentru baze de date populare, cum ar fi PostgreSQL, MySQL și MongoDB, făcându-l ușor de configurat și de integrat baze de date în aplicații fără a fi nevoie să configurați baze de date separate servere.
  • Flux de lucru de implementare fără întreruperi: Render oferă funcții precum implementări automate, rollback și integrări cu servicii populare precum GitHub și GitLab.
  • Domenii personalizate și SSL: Render oferă posibilitatea de a configura nume de domenii personalizate pentru site-uri web și aplicații web și include certificate SSL gratuite pentru acces HTTPS securizat.

Comparație între Render și Heroku

Ca și celelalte platforme cloud, Render are avantajele și dezavantajele sale. Dar cum se compară cu soluțiile populare în cloud precum Heroku?

  • Simplitate: Render oferă o interfață ușor de utilizat pentru implementarea și gestionarea aplicațiilor, cu accent pe ușurința în utilizare și configurația minimă.
  • Scalare automată: Render scalează automat aplicațiile în funcție de cerere, fără a necesita ajustări manuale sau configurații complexe.
  • Eficiența costurilor: Render oferă prețuri rentabile, care includ un nivel gratuit pentru proiecte individuale și prețuri relativ scăzute pentru echipe și planuri organizaționale, ceea ce o face o opțiune prietenoasă cu bugetul pentru găzduirea atât a aplicațiilor web la scară mică, cât și a celor comerciale mari proiecte.
  • Flexibilitate limitată: Simplitatea și configurația minimă pot fi o limitare pentru proiecte avansate și complexe care necesită personalizare și control mai mare asupra mediului de găzduire.

Configurați un proiect nou pe Render

Pentru a începe, accesați antetul către Site-ul lui Render și înscrieți-vă și conectați-vă la contul dvs.

Render facilitează implementarea și gestionarea API-urilor backend, oferind suport încorporat pentru limbaje de programare populare și servicii web care simplifică procesul de implementare.

Acest ghid va folosi funcția de servicii web pentru a implementa un API REST Express.js. Pentru a continua, va trebui mai întâi să configurați o instanță a bazei de date PostgreSQL pe Render.

Pe pagina de prezentare generală, faceți clic pe PostgreSQL nou butonul pentru a configura o instanță nouă.

Apoi, completați numele bazei de date și faceți clic pe Creați o bază de date. În cele din urmă, copiați Adresa URL internă a bazei de date furnizate. Îl veți folosi pentru a configura conexiunea dintre API-ul Express REST și baza de date PostgreSQL.

În esență, adresa URL internă a bazei de date este utilizată pentru a stabili o conexiune între aplicațiile care rulează pe serverele lui Render, cum ar fi un API implementat sau o aplicație web completă.

Cu toate acestea, dacă doriți să utilizați baza de date PostgreSQL doar dintr-o aplicație implementată pe o altă platformă, puteți utiliza Adresa URL a bazei de date externe pentru a configura conexiunea la baza de date.

Creați un API REST Express.js

Mergi înainte și creați un server web Express.js. Apoi, instalați următoarele pachete:

npm instalează pg knex

Puteți găsi codul acestui proiect în aceasta Depozitul GitHub.

Configurați conexiunea la baza de date

Pentru a configura conexiunea dintre API-ul Express.js și instanța PostgreSQL a lui Render, în directorul rădăcină al folderului proiectului, creați un db.js fișier și adăugați codul de mai jos.

const knex = cere('knex');
const db = knex({
client: 'pg',
conexiune: {
connectionString: „URL-ul bazei de date”,
ssl: {
rejectUnauthorized: fals
}
}
});

modul.exports = db;

Apoi, deschideți index.js fișier și adăugați codul mai jos implementează un API REST simplu cu patru trasee.

const expres = cere("expres");
const aplicație = expres()
const db = cere('./db')
const PORT = proces.env. PORT || 5000

app.use (express.json())
app.use (express.urlencoded({ extins: Adevărat }))

app.get('/', (req, res) => res.send('Salut Lume!' ))

// Obțineți toți utilizatorii
app.get(„/utilizatori”, asincron (req, res) => {
încerca {
const utilizatori = așteaptă db.select().from(„utilizatori”)
res.json (utilizatori)
} captură (eroare) {
consolă.eroare (eroare)
starea res.(500).json({ mesaj: „Eroare la preluarea utilizatorilor” })
}
})


app.post(„/utilizatori”, asincron (req, res) => {
încerca {
const utilizator = așteaptă db(„utilizatori”).introduce({ Nume: req.body.name }).returning('*')
res.json (utilizator)
} captură (eroare) {
consolă.eroare (eroare)
starea res.(500).json({ mesaj: „Eroare la crearea utilizatorului” })
}
})

// Ștergeți un utilizator existent
app.delete(„/utilizatori/:id”, asincron (req, res) => {
încerca {
const { id } = req.params
const utilizator = așteaptă db(„utilizatori”).unde({ id }).delete().returning('*')
res.json (utilizator)
} captură (eroare) {
consolă.eroare (eroare)
starea res.(500).json({ mesaj: „Eroare la ștergerea utilizatorului” })
}
})

app.ascultă (PORT, () => consolă.Buturuga(`Server la PORT:${PORT}`))

Configurați fișierul migrate.js

Creați un folder nou, scenarii, în directorul rădăcină al proiectului, adăugați un fișier nou, migrate.js, și, în final, adăugați codul de mai jos:

const db = cere('../db');
(asincron () => {
încerca {
așteaptă db.schema.dropTableIfExists(„utilizatori”)
așteaptă db.schema.withSchema('public').createTable(„utilizatori”, (tabel) => {
table.increments()
table.string('Nume')
})
consolă.Buturuga(„Tabelul utilizatorilor creat!”)
proces.ieșire(0)
} captură (eroare) {
consolă.log (eroare)
proces.ieșire(1)
}
})()

Acest cod va crea un nou utilizatorii tabel din baza de date cu două coloane: un câmp de cheie primară cu incrementare automată și un câmp de nume.

În cele din urmă, adăugați aceste comenzi la dvs pachet.json fişier.

"scripte": {
"start": „node index.js”,
"migra": „node scripts/migrate.js”,
},

În cele din urmă, pentru a crea tabelul utilizatorului în baza de date, trebuie să rulați migrate.js fișier ca script pe terminalul dvs. utilizând comanda de mai jos.

npm run migrate

Cu toate acestea, înainte de a rula comanda, asigurați-vă că ați preluat Adresa URL a bazei de date externe din informațiile despre setările instanței PostgreSQL din Render și inserați-le în fișierul db.js fișier ca șir de conexiune.

Aceasta va stabili o conexiune cu instanța bazei de date de pe mașina dvs. locală, permițându-vă să creați tabelul înainte de a implementa API-ul. Odată ce tabelul este creat, puteți apoi să vă îndreptați către instanța PostgreSQL din Render, să preluați Adresa URL internă a bazei de date, și actualizați db.js dosar în consecință.

Implementați API-ul REST pe Render

Primul, creați un nou depozit pe GitHub și împingeți codul proiectului. Apoi, conectați-vă la contul dvs. Render, faceți clic pe Nou+ butonul și selectați Serviciu web opțiunea din meniul derulant.

În cele din urmă, accesați contul dvs. GitHub, selectați depozitul proiectului și conectați-vă la acesta în Render.

Pe pagina de setări a serviciului web, furnizați un nume pentru noul serviciu, specificați directorul rădăcină al proiectului, comanda de compilare și pornire și, în final, faceți clic pe Creați serviciu web. Odată ce procesul de implementare este finalizat, copiați adresa URL furnizată pentru a testa punctele finale pe Postman.

Testați punctele finale API pe Postman

Postman este un instrument popular pentru dezvoltarea și testarea API-urilor. Pentru a te familiariza cu Postman, aflați cum să îl utilizați pentru a testa un API.

Pentru a testa API-ul implementat, faceți a POST cerere către /utilizatorii punct final pentru a stoca date în baza de date PostgreSQL.

În cele din urmă, faceți o solicitare GET pentru a prelua datele stocate.

Este Render o alternativă viabilă?

Render oferă un proces de configurare simplu și o integrare perfectă cu sistemele populare de control al versiunilor, ceea ce o face o bună platformă alternativă de găzduire în cloud.

Mai mult, modelul său de preț competitiv și suportul încorporat pentru instrumentele de dezvoltare populare îl fac o opțiune fiabilă și ușor de utilizat atât pentru proiecte secundare, cât și pentru aplicații comerciale mari.