Rakenduste Node.js juurutamine ei tohiks olla tülikas. Pange oma Express.js server tööle Renderi kuluefektiivse ja kasutajasõbraliku platvormi abil.
2022. aasta lõpus lõpetas Heroku oma tasuta taseme valiku, mille tulemusena eemaldati oma ökosüsteemist varem saadaval olnud veebimajutuse ja muude pilveteenuste tasuta tellimisplaan.
Tasuta tasemed on eriti käepärased ja kulutõhusad, kui kavatsete rakendusi lühiajaliselt juurutada ja hostida. Õnneks on olemas alternatiivne pilveplatvorm, mis sarnaselt Herokule pakub oma pilveteenuste jaoks muude hüvede hulgas tasuta taset.
Selles artiklis uurime, kuidas juurutada Express.js REST API pilvepõhisel hostimisplatvormil Render.
Mis on Render?
Render on pilvemajutusplatvorm, mis pakub sujuvat ja probleemivaba viisi staatiliste veebisaitide, täisväärtuslike veebirakenduste, taustarakendusliideste või andmebaaside juurutamiseks ja haldamiseks pilves. Funktsioonide hulka kuuluvad:
- Kasutajasõbralik liides: Renderer pakub lihtsat ja intuitiivset liidest, mis lihtsustab populaarsete programmeerimiskeelte (nt Python ja Node.js) abil loodud rakenduste juurutamise protsessi.
- Sisseehitatud andmebaasid: Render pakub sisseehitatud tuge populaarsetele andmebaasidele, nagu PostgreSQL, MySQL ja MongoDB, muutes selle lihtne seadistada ja integreerida andmebaase rakendustesse ilma eraldi andmebaasi seadistamata serverid.
- Sujuv juurutamise töövoog: Render pakub selliseid funktsioone nagu automatiseeritud juurutamine, tagasipööramine ja integreerimine populaarsete teenustega, nagu GitHub ja GitLab.
- Kohandatud domeenid ja SSL: Renderer pakub võimalust konfigureerida veebisaitide ja veebirakenduste jaoks kohandatud domeeninimesid ning sisaldab tasuta SSL-sertifikaate turvaliseks HTTPS-i juurdepääsuks.
Renderi ja Heroku võrdlus
Nagu teistel pilveplatvormidel, on ka Renderil oma eelised ja puudused. Kuidas aga võrrelda seda populaarsete pilvelahendustega nagu Heroku?
- Lihtsus: Render pakub kasutajasõbralikku liidest rakenduste juurutamiseks ja haldamiseks, keskendudes kasutusmugavusele ja minimaalsele konfiguratsioonile.
- Automatiseeritud skaleerimine: Renderdus skaleerib rakendused automaatselt vastavalt nõudlusele, ilma et oleks vaja käsitsi reguleerida või keerukat konfiguratsiooni.
- Kulutõhususe: Render pakub kulutõhusat hinnakujundust, mis sisaldab tasuta taset üksikute projektide jaoks ning suhteliselt madalat hinda meeskondadele ja organisatsioonilisi plaane, muutes selle eelarvesõbralikuks võimaluseks nii väikesemahuliste veebirakenduste kui ka suurte reklaamide majutamiseks projektid.
- Piiratud paindlikkus: selle lihtsus ja minimaalne konfiguratsioon võivad olla piiranguks arenenud ja keerukate projektide jaoks, mis nõuavad rohkem kohandamist ja hostimiskeskkonna kontrolli.
Seadistage renderdamisel uus projekt
Alustamiseks minge päisesse Renderi veebisait ja registreeruge ning logige sisse oma kontole.
Render teeb taustaprogrammi API-de juurutamise ja haldamise lihtsaks, pakkudes sisseehitatud tuge populaarsetele programmeerimiskeeltele ja veebiteenustele, mis lihtsustavad juurutusprotsessi.
See juhend kasutab selle veebiteenuste funktsiooni Express.js REST API juurutamiseks. Järgimiseks peate esmalt seadistama Renderis PostgreSQL-i andmebaasi eksemplari.
Ülevaatelehel klõpsake nuppu Uus PostgreSQL nuppu uue eksemplari seadistamiseks.
Järgmisena sisestage oma andmebaasi nimi ja klõpsake nuppu Loo andmebaas. Lõpuks kopeerige Sisemine andmebaasi URL ette nähtud. Kasutate seda oma Express REST API ja PostgreSQL-i andmebaasi vahelise ühenduse konfigureerimiseks.
Põhimõtteliselt kasutatakse sisemise andmebaasi URL-i ühenduse loomiseks renderdamisserverites töötavate rakenduste vahel, nagu juurutatud API või täisväärtuslik veebirakendus.
Sellegipoolest, kui soovite kasutada PostgreSQL-i andmebaasi ainult mõnel muul platvormil juurutatud rakendusest, võite kasutada Välise andmebaasi URL andmebaasiühenduse konfigureerimiseks.
Looge Express.js REST API
Mine edasi ja luua Express.js veebiserver. Järgmisena installige järgmised paketid:
npm install pg knex
Selle projekti koodi leiate siit GitHubi hoidla.
Andmebaasiühenduse konfigureerimine
Express.js API ja Rendereri PostgreSQL-i eksemplari vahelise ühenduse seadistamiseks looge oma projektikausta juurkataloogis db.js faili ja lisage allolev kood.
konst knex = nõuda('knex');
konst db = knex({
klient: 'lk',
ühendus: {
ühendusString: "andmebaasi URL",
ssl: {
tagasilükkamine Volitamata: vale
}
}
});moodul.exports = db;
Järgmisena avage index.js faili ja lisage selle alla kood rakendab lihtsat REST API-t nelja marsruudiga.
konst väljendada = nõuda("väljendama");
konst rakendus = express()
konst db = nõuda('./db')
konst PORT = process.env. PORT || 5000app.use (express.json())
app.use (express.urlencoded({ pikendatud: tõsi }))app.get('/', (req, res) => res.send('Tere, Maailm!' ))
// Hangi kõik kasutajad
app.get('/kasutajad', asünkr (req, res) => {
proovi {
konst kasutajad = ootama db.select().from("kasutajad")
res.json (kasutajad)
} püüda (viga) {
konsool.error (viga)
res.status(500).json({ sõnum: "Viga kasutajate toomisel" })
}
})
app.post('/kasutajad', asünkr (req, res) => {
proovi {
konst kasutaja = ootama db("kasutajad").insert({ nimi: req.body.name }).returning('*')
res.json (kasutaja)
} püüda (viga) {
konsool.error (viga)
res.status(500).json({ sõnum: "Viga kasutaja loomisel" })
}
})// Olemasoleva kasutaja kustutamine
app.delete('/kasutajad/:id', asünkr (req, res) => {
proovi {
konst { id } = req.params
konst kasutaja = ootama db("kasutajad").where({ id }).delete().returning('*')
res.json (kasutaja)
} püüda (viga) {
konsool.error (viga)
res.status(500).json({ sõnum: "Viga kasutaja kustutamisel" })
}
})
app.listen (PORT, () => konsool.log(`Server PORTis:${PORT}`))
Seadistage fail migrate.js
Looge uus kaust, skriptid, lisage oma projekti juurkataloogi uus fail, migrate.js, ja lõpuks lisage allolev kood:
konst db = nõuda("../db");
(asünkr () => {
proovi {
ootama db.schema.dropTableIfExists("kasutajad")
ootama db.schema.withSchema('avalik').createTable("kasutajad", (tabel) => {
table.increments()
table.string('nimi')
})
konsool.log("Loodud kasutajate tabel!")
process.exit(0)
} püüda (err) {
konsool.log (viga)
process.exit(1)
}
})()
See kood loob uue kasutajad tabel andmebaasis kahe veeruga: automaatselt suurenev primaarvõtme väli ja nimeväli.
Lõpuks lisage need käsud oma package.json faili.
"skriptid": {
"alusta": "node index.js",
"rändama": "node scripts/migrate.js",
},
Lõpuks peate andmebaasis kasutaja tabeli loomiseks käivitama faili migrate.js faili skriptina oma terminalis, kasutades allolevat käsku.
npm run migrate
Enne käsu käivitamist laadige aga kindlasti alla Välise andmebaasi URL Renderi PostgreSQL-i eksemplari sätete teabest ja kleepige see kausta db.js faili ühendusstringina.
See loob ühenduse teie kohalikust masinast pärineva andmebaasi eksemplariga, mis võimaldab teil enne API juurutamist tabeli luua. Kui tabel on loodud, saate seejärel minna oma renderdamise PostgreSQL-i eksemplari juurde ja hankida Sisemine andmebaasi URLja värskendage db.js faili vastavalt.
Juurutage REST API renderdamisel
Esiteks looge GitHubis uus hoidla ja vajuta projekti koodi. Järgmisena logige sisse oma renderdamiskontole ja klõpsake nuppu Uus+ nuppu ja valige Veebiteenus valik rippmenüüst.
Lõpuks avage oma GitHubi konto, valige oma projekti hoidla ja looge sellega renderdamisühendus.
Sisestage veebiteenuse sätete lehel uuele teenusele nimi, määrake projekti juurkataloog, ehitamis- ja käivitamiskäsk ning lõpuks klõpsake nuppu Loo veebiteenus. Kui juurutamisprotsess on lõppenud, kopeerige pakutud URL, et testida lõpp-punkte teenuses Postman.
Testige API lõpp-punkte teenuses Postman
Postman on populaarne tööriist API-de arendamiseks ja testimiseks. Postimehega tutvumiseks õppida, kuidas seda API testimiseks kasutada.
Juurutatud API testimiseks tehke a POSTITA päring aadressile /kasutajad lõpp-punkt andmete salvestamiseks PostgreSQL-i andmebaasi.
Lõpuks esitage salvestatud andmete toomiseks GET-i päring.
Kas Render on elujõuline alternatiiv?
Render pakub lihtsat häälestusprotsessi ja sujuvat integreerimist populaarsete versioonikontrollisüsteemidega, muutes selle heaks alternatiivseks pilvemajutusplatvormiks.
Veelgi enam, selle konkurentsivõimeline hinnamudel ja populaarsete arendustööriistade sisseehitatud tugi muudavad selle usaldusväärseks ja kasutajasõbralikuks valikuks nii kõrvalprojektide kui ka suurte kommertsrakenduste jaoks.