„Node.js“ programų diegimas neturėtų kelti problemų. Sukurkite savo Express.js serverį ir paleiskite jį naudodami ekonomiškai efektyvią ir patogią vartotojui platformą.
2022 m. pabaigoje „Heroku“ nutraukė savo nemokamos pakopos parinktį, todėl jos ekosistemoje buvo pašalintas anksčiau galiojantis nemokamas žiniatinklio prieglobos ir kitų debesies paslaugų prenumeratos planas.
Nemokamos pakopos yra ypač patogios ir ekonomiškos, jei ketinate įdiegti ir priglobti programas trumpą laiką. Laimei, yra alternatyvi debesų platforma, kuri, kaip ir „Heroku“, be kitų privilegijų siūlo nemokamą debesijos paslaugų pakopą.
Šiame straipsnyje išnagrinėsime, kaip įdiegti Express.js REST API „Render“, debesies pagrindu veikiančioje prieglobos platformoje.
Kas yra Renderis?
„Render“ yra debesies prieglobos platforma, kuri suteikia galimybę sklandžiai ir be rūpesčių įdiegti ir valdyti statines svetaines, visavertes žiniatinklio programas, užpakalines API arba duomenų bazes debesyje. Funkcijos apima:
- Patogi sąsaja: Render suteikia paprastą ir intuityvią sąsają, kuri supaprastina programų, sukurtų naudojant populiarias programavimo kalbas, tokias kaip Python ir Node.js, diegimo procesą.
- Integruotos duomenų bazės: Render siūlo integruotą palaikymą populiarioms duomenų bazėms, tokioms kaip PostgreSQL, MySQL ir MongoDB, todėl lengva nustatyti ir integruoti duomenų bazes į programas, nereikia sukurti atskiros duomenų bazės serveriai.
- Sklandi diegimo darbo eiga: „Render“ teikia tokias funkcijas kaip automatinis diegimas, atšaukimas ir integravimas su populiariomis paslaugomis, tokiomis kaip „GitHub“ ir „GitLab“.
- Priskirti domenai ir SSL: Render siūlo galimybę konfigūruoti tinkintus domenų pavadinimus svetainėms ir žiniatinklio programoms, be to, jame yra nemokami SSL sertifikatai saugiai prieigai HTTPS.
„Render“ ir „Heroku“ palyginimas
Kaip ir kitos debesų platformos, „Render“ turi privalumų ir trūkumų. Bet kaip tai palyginti su populiariais debesų sprendimais, tokiais kaip „Heroku“?
- Paprastumas: Render suteikia patogią sąsają programoms diegti ir tvarkyti, daugiausia dėmesio skiriant naudojimo paprastumui ir minimaliam konfigūravimui.
- Automatizuotas mastelio keitimas: Render automatiškai keičia programas pagal poreikį, nereikalaujant rankinio koregavimo ar sudėtingos konfigūracijos.
- Kainos efektyvumas: „Render“ siūlo ekonomišką kainodarą, apimančią nemokamą pakopą individualiems projektams ir santykinai žemas kainas komandoms ir organizacinius planus, todėl tai yra ekonomiškas pasirinkimas tiek mažoms žiniatinklio programoms, tiek didelėms reklamoms projektus.
- Ribotas lankstumas: jo paprastumas ir minimali konfigūracija gali būti apribojimas pažangiems ir sudėtingiems projektams, kuriuos reikia labiau pritaikyti ir valdyti prieglobos aplinką.
Nustatykite naują projektą Render
Norėdami pradėti, perkelkite antraštę į „Render“ svetainė ir prisiregistruokite bei prisijunkite prie savo paskyros.
„Render“ leidžia lengvai diegti ir valdyti pagrindines API, nes siūlo integruotą populiarių programavimo kalbų palaikymą ir žiniatinklio paslaugas, kurios supaprastina diegimo procesą.
Šiame vadove bus naudojama žiniatinklio paslaugų funkcija, kad būtų įdiegta Express.js REST API. Norėdami tęsti, pirmiausia turėsite nustatyti PostgreSQL duomenų bazės egzempliorių Render.
Apžvalgos puslapyje spustelėkite Naujas PostgreSQL mygtuką, kad nustatytumėte naują egzempliorių.
Tada įveskite savo duomenų bazės pavadinimą ir spustelėkite Sukurti duomenų bazę. Galiausiai nukopijuokite Vidinės duomenų bazės URL jeigu. Jį naudosite norėdami sukonfigūruoti ryšį tarp „Express REST“ API ir „PostgreSQL“ duomenų bazės.
Iš esmės vidinės duomenų bazės URL yra naudojamas ryšiui tarp taikomųjų programų, veikiančių Render serveriuose, pvz., įdiegtos API arba visavertės žiniatinklio programos, užmegzti.
Nepaisant to, jei norite naudoti PostgreSQL duomenų bazę tik iš programos, įdiegtos kitoje platformoje, galite naudoti Išorinės duomenų bazės URL Norėdami sukonfigūruoti duomenų bazės ryšį.
Sukurkite Express.js REST API
Pirmyn ir sukurti Express.js žiniatinklio serverį. Tada įdiekite šiuos paketus:
npm įdiegti pg knex
Šio projekto kodą rasite čia GitHub saugykla.
Sukonfigūruokite duomenų bazės ryšį
Norėdami nustatyti ryšį tarp Express.js API ir Render PostgreSQL egzemplioriaus, projekto aplanko šakniniame kataloge sukurkite db.js failą ir pridėkite žemiau esantį kodą.
konst Knex = reikalauti("knex");
konst db = knex({
klientas: "pg",
ryšys: {
ryšio eilutė: "duomenų bazės URL",
ssl: {
atmestiNeteisėta: klaidinga
}
}
});modulis.eksportas = db;
Tada atidarykite index.js failą ir po juo pridėkite kodą įdiegia paprastą REST API su keturiais maršrutais.
konst išreikšti = reikalauti("išreikšti");
konst programa = express ()
konst db = reikalauti('./db')
konst PORT = process.env. UOSTAS || 5000app.use (express.json())
app.use (express.urlencoded({ pratęstas: tiesa }))app.get('/', (req, res) => res.send('Labas pasauli!' ))
// Gaukite visus vartotojus
app.get('/naudotojai', async (req, res) => {
bandyti {
konst vartotojai = laukti db.select().from("vartotojai")
res.json (naudotojai)
} sugauti (klaida) {
konsolė.error (klaida)
res.status(500.json({ žinutę: „Klaida nuskaitant vartotojus“ })
}
})
app.post('/naudotojai', async (req, res) => {
bandyti {
konst vartotojas = laukti db("vartotojai").Įdėti({ vardas: req.body.name }).returning('*')
res.json (vartotojas)
} sugauti (klaida) {
konsolė.error (klaida)
res.status(500.json({ žinutę: „Klaida kuriant vartotoją“ })
}
})// Ištrinkite esamą vartotoją
app.delete('/naudotojai/:id', async (req, res) => {
bandyti {
konst { id } = req.params
konst vartotojas = laukti db("vartotojai").kur({ id }).delete().returning('*')
res.json (vartotojas)
} sugauti (klaida) {
konsolė.error (klaida)
res.status(500.json({ žinutę: „Klaida ištrinant vartotoją“ })
}
})
app.listen (PORT, () => konsolė.log(`Serveris prie PORT:${PORT}`))
Nustatykite failą migrate.js
Sukurti naują aplanką, scenarijus, projekto šakniniame kataloge pridėkite naują failą, migrate.js, ir galiausiai pridėkite žemiau esantį kodą:
konst db = reikalauti(„../db“);
(async () => {
bandyti {
laukti db.schema.dropTableIfExists("vartotojai")
laukti db.schema.withSchema('vieša').createTable("vartotojai", (lentelė) => {
table.increments()
table.string('vardas')
})
konsolė.log("Sukurta vartotojų lentelė!")
process.exit(0)
} sugauti (err) {
konsolė.log (klaida)
process.exit(1)
}
})()
Šis kodas sukurs naują vartotojų lentelė duomenų bazėje su dviem stulpeliais: automatiškai didėjančiu pirminio rakto lauku ir pavadinimo lauku.
Galiausiai pridėkite šias komandas prie savo package.json failą.
"scenarijai": {
"pradėti": "mazgas index.js",
"migruoti": "mazgo scenarijai/migrate.js",
},
Galiausiai, norėdami sukurti vartotojo lentelę duomenų bazėje, turite paleisti migrate.js failą kaip scenarijų savo terminale naudodami toliau pateiktą komandą.
npm paleisti migrate
Tačiau prieš paleisdami komandą būtinai nuskaitykite Išorinės duomenų bazės URL iš Render's PostgreSQL egzemplioriaus nustatymų informacijos ir įklijuokite ją į db.js failą kaip ryšio eilutę.
Tai užmegs ryšį su duomenų bazės egzemplioriumi iš jūsų vietinio kompiuterio ir galėsite sukurti lentelę prieš diegiant API. Sukūrę lentelę, galite pereiti prie savo Render PostgreSQL egzemplioriaus ir nuskaityti Vidinės duomenų bazės URL, ir atnaujinkite db.js atitinkamai failą.
Įdiekite REST API „Render“.
Pirmas, sukurti naują saugyklą „GitHub“. ir paspauskite projekto kodą. Tada prisijunkite prie savo Render paskyros, spustelėkite Naujas+ mygtuką ir pasirinkite Žiniatinklio paslauga parinktį iš išskleidžiamojo meniu.
Galiausiai prisijunkite prie savo „GitHub“ paskyros, pasirinkite projekto saugyklą ir prisijunkite prie jos naudodami „Render“.
Žiniatinklio paslaugos nustatymų puslapyje nurodykite naujos paslaugos pavadinimą, nurodykite projekto šakninį katalogą, kūrimo ir paleidimo komandą ir galiausiai spustelėkite Sukurkite žiniatinklio paslaugą. Kai diegimo procesas bus baigtas, nukopijuokite pateiktą URL, kad patikrintumėte „Postman“ galinius taškus.
Išbandykite API galutinius taškus „Postman“.
„Postman“ yra populiarus API kūrimo ir testavimo įrankis. Norėdami susipažinti su paštininku, išmokite jį naudoti API testavimui.
Norėdami išbandyti įdiegtą API, padarykite a PAST prašymas /vartotojų galinį tašką, kad saugotų duomenis PostgreSQL duomenų bazėje.
Galiausiai pateikite GET užklausą, kad gautumėte saugomus duomenis.
Ar Render yra perspektyvi alternatyva?
„Render“ suteikia nesudėtingą sąrankos procesą ir sklandžią integraciją su populiariomis versijų valdymo sistemomis, todėl tai yra gera alternatyvi debesies prieglobos platforma.
Be to, dėl konkurencingos kainodaros modelio ir integruoto populiarių kūrimo įrankių palaikymo jis yra patikimas ir patogus pasirinkimas tiek šalutiniams projektams, tiek didelėms komercinėms programoms.