Det burde ikke være besværligt at implementere Node.js-apps. Få din Express.js-server op at køre med Renders omkostningseffektive og brugervenlige platform.

I slutningen af ​​2022 afbrød Heroku sin gratis niveaumulighed, hvilket resulterede i fjernelse af den tidligere tilgængelige gratis abonnementsplan for webhosting og andre cloud-tjenester i sit økosystem.

Gratis niveauer er særligt praktiske og omkostningseffektive, hvis du har til hensigt at implementere og hoste applikationer i en kort periode. Heldigvis er der en alternativ cloud-platform, der ligesom Heroku tilbyder et gratis niveau for sine cloud-tjenester blandt andre frynsegoder.

I denne artikel vil vi undersøge, hvordan man implementerer en Express.js REST API på Render, en cloud-baseret hostingplatform.

Hvad er Render?

Render er en cloud-hostingplatform, der giver en problemfri og problemfri måde at implementere og administrere statiske websteder, fuldgyldige webapplikationer, backend-API'er eller databaser på skyen. Funktionerne omfatter:

instagram viewer
  • Brugervenlig grænseflade: Render giver en enkel og intuitiv grænseflade, der forenkler processen med at implementere applikationer bygget ved hjælp af populære programmeringssprog såsom Python og Node.js.
  • Indbyggede databaser: Render tilbyder indbygget understøttelse af populære databaser som PostgreSQL, MySQL og MongoDB, hvilket gør det let at opsætte og integrere databaser i applikationer uden at skulle oprette en separat database servere.
  • Problemfri implementeringsarbejdsgang: Render giver funktioner såsom automatiserede implementeringer, rollbacks og integrationer med populære tjenester som GitHub og GitLab.
  • Brugerdefinerede domæner og SSL: Render giver mulighed for at konfigurere brugerdefinerede domænenavne til websteder og webapplikationer, og det inkluderer gratis SSL-certifikater til sikker HTTPS-adgang.

Sammenligning mellem Render og Heroku

Ligesom de andre cloud-platforme har Render sine fordele og ulemper. Men hvordan er det sammenlignet med populære cloud-løsninger som Heroku?

  • Enkelhed: Render giver en brugervenlig grænseflade til implementering og administration af applikationer med fokus på brugervenlighed og minimal konfiguration.
  • Automatisk skalering: Render skalerer automatisk applikationer baseret på efterspørgsel uden at kræve manuelle justeringer eller kompleks konfiguration.
  • Omkostningseffektivitet: Render tilbyder omkostningseffektive priser, som inkluderer et gratis niveau for individuelle projekter og relativt lave priser for teams og organisationsplaner, hvilket gør det til en budgetvenlig mulighed for hosting af både små webapplikationer og store kommercielle projekter.
  • Begrænset fleksibilitet: Dens enkelhed og minimale konfiguration kan være en begrænsning for avancerede og komplekse projekter, der kræver mere tilpasning og kontrol over hostingmiljøet.

Opsæt et nyt projekt på Render

For at komme i gang skal du gå over til Renders hjemmeside og tilmeld dig og log ind på din konto.

Render gør det nemt at implementere og administrere backend-API'er ved at tilbyde indbygget understøttelse af populære programmeringssprog og webtjenester, der strømliner implementeringsprocessen.

Denne vejledning vil gøre brug af dens webservicefunktion til at implementere en Express.js REST API. For at følge med skal du først konfigurere en PostgreSQL-databaseinstans på Render.

På oversigtssiden skal du klikke på Ny PostgreSQL knappen for at oprette en ny instans.

Udfyld derefter navnet på din database og klik på Opret database. Til sidst kopierer du Intern database-URL stillet til rådighed. Du skal bruge den til at konfigurere forbindelsen mellem din Express REST API og PostgreSQL-databasen.

Grundlæggende bruges den interne database-URL til at etablere en forbindelse mellem applikationer, der kører på Renders servere, såsom en implementeret API eller en fuldgyldig webapplikation.

Ikke desto mindre, hvis du kun ønsker at bruge PostgreSQL-databasen fra en applikation, der er installeret på en anden platform, kan du bruge Ekstern database-URL for at konfigurere databaseforbindelsen.

Opret en Express.js REST API

Gå videre og oprette en Express.js-webserver. Installer derefter følgende pakker:

npm installer pg knex

Du kan finde dette projekts kode i denne GitHub-depot.

Konfigurer databaseforbindelsen

For at konfigurere forbindelsen mellem Express.js API og Renders PostgreSQL-instans skal du oprette en db.js fil og tilføj koden nedenfor.

konst knex = kræve('knex');
konst db = knex({
klient: 'pg',
forbindelse: {
forbindelsesstreng: 'databasens URL',
ssl: {
afvise Uautoriseret: falsk
}
}
});

modul.eksport = db;

Åbn derefter index.js fil, og tilføj koden nedenfor implementerer en simpel REST API med fire ruter.

konst udtrykke = kræve("udtrykke");
konst app = express()
konst db = kræve('./db')
konst PORT = proces.env. PORT || 5000

app.use (express.json())
app.use (express.urlencoded({ udvidet: rigtigt }))

app.get('/', (req, res) => res.send('Hej Verden!' ))

// Hent alle brugere
app.get('/brugere', asynkron (req, res) => {
prøve {
konst brugere = vente db.select().fra('brugere')
res.json (brugere)
} fangst (fejl) {
konsol.error (fejl)
res.status(500).json({ besked: 'Fejl ved hentning af brugere' })
}
})


app.post('/brugere', asynkron (req, res) => {
prøve {
konst bruger = vente db('brugere').insert({ navn: req.body.name }).returning('*')
res.json (bruger)
} fangst (fejl) {
konsol.error (fejl)
res.status(500).json({ besked: 'Fejl ved oprettelse af bruger' })
}
})

// Slet en eksisterende bruger
app.delete('/brugere/:id', asynkron (req, res) => {
prøve {
konst { id } = req.params
konst bruger = vente db('brugere').where({ id }).delete().returning('*')
res.json (bruger)
} fangst (fejl) {
konsol.error (fejl)
res.status(500).json({ besked: 'Fejl ved sletning af bruger' })
}
})

app.lyt (PORT, () => konsol.log(`Server oppe ved PORT:${PORT}`))

Konfigurer migrate.js-filen

Opret en ny mappe, scripts, i dit projekts rodmappen, tilføje en ny fil, migrate.js, og til sidst tilføjer du koden nedenfor:

konst db = kræve('../db');
(asynkron () => {
prøve {
vente db.schema.dropTableIfExists('brugere')
vente db.schema.withSchema('offentlig').createTable('brugere', (tabel) => {
table.increments()
table.string('navn')
})
konsol.log('Oprettet brugertabel!')
process.exit(0)
} fangst (fejl) {
konsol.log (fejl)
process.exit(1)
}
})()

Denne kode vil oprette en ny brugere tabel i databasen med to kolonner: et primært nøglefelt med automatisk stigning og et navnefelt.

Tilføj endelig disse kommandoer til din package.json fil.

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

Til sidst, for at oprette brugerens tabel på databasen, skal du køre migrate.js fil som et script på din terminal ved hjælp af kommandoen nedenfor.

npm run migrere

Før du kører kommandoen, skal du dog sørge for at hente Ekstern database-URL fra Renders PostgreSQL-instansindstillinger, og indsæt det i db.js fil som forbindelsesstrengen.

Dette vil etablere en forbindelse med databaseforekomsten fra din lokale maskine, så du kan oprette tabellen, før du implementerer API'en. Når tabellen er oprettet, kan du gå over til din Renders PostgreSQL-instans, hente Intern database-URL, og opdater db.js fil i overensstemmelse hermed.

Implementer REST API på Render

Først, opret et nyt lager på GitHub og tryk på projektkoden. Log derefter ind på din Render-konto, klik på Ny+ knappen, og vælg Webservice mulighed fra rullemenuen.

Til sidst skal du få adgang til din GitHub-konto, vælge dit projekts depot, og oprette forbindelse til det på Render.

På siden med webserviceindstillinger skal du angive et navn til den nye tjeneste, angive projektets rodmappen, bygge- og startkommandoen, og til sidst klikke på Opret webservice. Når implementeringsprocessen er fuldført, skal du kopiere den angivne URL for at teste slutpunkterne på Postman.

Test API-endepunkterne på Postman

Postman er et populært værktøj til at udvikle og teste API'er. For at blive fortrolig med Postman, lær hvordan du bruger det til at teste en API.

For at teste den implementerede API skal du lave en STOLPE anmodning til /brugere slutpunkt til at gemme data i PostgreSQL-databasen.

Lav endelig en GET-anmodning for at hente de lagrede data.

Er Render et levedygtigt alternativ?

Render giver en ligetil opsætningsproces og problemfri integration med populære versionskontrolsystemer, hvilket gør det til en god alternativ cloud-hostingplatform.

Desuden gør dens konkurrencedygtige prismodel og indbyggede understøttelse af populære udviklingsværktøjer den til en pålidelig og brugervenlig mulighed for både sideprojekter og store kommercielle applikationer.