Het implementeren van Node.js-apps zou geen gedoe moeten zijn. Zet uw Express.js-server aan de praat met het kosteneffectieve en gebruiksvriendelijke platform van Render.
Eind 2022 stopte Heroku met zijn gratis laag, wat resulteerde in de verwijdering van het eerder beschikbare gratis abonnement voor webhosting en andere cloudservices in zijn ecosysteem.
Gratis lagen zijn bijzonder handig en kosteneffectief als u van plan bent applicaties voor een korte periode te implementeren en te hosten. Gelukkig is er een alternatief cloudplatform dat, net als Heroku, onder andere een gratis laag biedt voor zijn cloudservices.
In dit artikel onderzoeken we hoe u een Express.js REST API implementeert op Render, een cloudgebaseerd hostingplatform.
Wat is renderen?
Render is een cloudhostingplatform dat een naadloze en probleemloze manier biedt om statische websites, volwaardige webapplicaties, backend-API's of databases in de cloud te implementeren en te beheren. De kenmerken omvatten:
- Gebruiksvriendelijke interface: Render biedt een eenvoudige en intuïtieve interface die het implementeren van applicaties vereenvoudigt die zijn gebouwd met behulp van populaire programmeertalen zoals Python en Node.js.
- Ingebouwde databases: Render biedt ingebouwde ondersteuning voor populaire databases zoals PostgreSQL, MySQL en MongoDB, waardoor het eenvoudig op te zetten en databases te integreren in applicaties zonder een aparte database op te zetten servers.
- Naadloze implementatieworkflow: Render biedt functies zoals geautomatiseerde implementaties, rollbacks en integraties met populaire services zoals GitHub en GitLab.
- Aangepaste domeinen en SSL: Render biedt de mogelijkheid om aangepaste domeinnamen voor websites en webapplicaties te configureren, en het bevat gratis SSL-certificaten voor veilige HTTPS-toegang.
Vergelijking tussen Render en Heroku
Net als de andere cloudplatforms heeft Render zijn voor- en nadelen. Maar hoe verhoudt het zich tot populaire cloudoplossingen zoals Heroku?
- Eenvoud: Render biedt een gebruiksvriendelijke interface voor het implementeren en beheren van applicaties, met de nadruk op gebruiksgemak en minimale configuratie.
- Geautomatiseerde schaalvergroting: Render schaalt applicaties automatisch op basis van de vraag, zonder handmatige aanpassingen of complexe configuratie.
- Kosten efficiëntie: Render biedt kosteneffectieve prijzen, waaronder een gratis laag voor individuele projecten en relatief lage prijzen voor teams en organisatieplannen, waardoor het een budgetvriendelijke optie is voor het hosten van zowel kleinschalige webapplicaties als grote commerciële projecten.
- Beperkte flexibiliteit: De eenvoud en minimale configuratie kan een beperking zijn voor geavanceerde en complexe projecten die meer maatwerk en controle over de hostingomgeving vereisen.
Stel een nieuw project op Render in
Ga om te beginnen naar Renders website en meld u aan en log in op uw account.
Render maakt het eenvoudig om backend-API's te implementeren en te beheren door ingebouwde ondersteuning te bieden voor populaire programmeertalen en webservices die het implementatieproces stroomlijnen.
Deze handleiding maakt gebruik van de webservicefunctie om een Express.js REST API te implementeren. Om verder te gaan, moet u eerst een PostgreSQL-database-instantie instellen op Render.
Klik op de overzichtspagina op de Nieuwe PostgreSQL knop om een nieuwe instantie in te stellen.
Vul vervolgens de naam van uw database in en klik op Maak een databank aan. Kopieer ten slotte de Interne database-URL mits. U zult het gebruiken om de verbinding tussen uw Express REST API en de PostgreSQL-database te configureren.
In wezen wordt de URL van de interne database gebruikt om een verbinding tot stand te brengen tussen applicaties die op de servers van Render draaien, zoals een geïmplementeerde API of een volwaardige webapplicatie.
Als u echter alleen de PostgreSQL-database wilt gebruiken van een applicatie die op een ander platform is geïmplementeerd, kunt u de Externe database-URL om de databaseverbinding te configureren.
Maak een Express.js REST API
Ga je gang en maak een Express.js-webserver. Installeer vervolgens de volgende pakketten:
npm installeer pg knex
U kunt de code van dit project hierin vinden GitHub-opslagplaats.
Configureer de databaseverbinding
Om de verbinding tussen de Express.js API en de PostgreSQL-instantie van Render in te stellen, maakt u in de hoofdmap van uw projectmap een db.js bestand en voeg onderstaande code toe.
const knex = vereisen('knex');
const db = knex({
cliënt: 'pag',
verbinding: {
Verbindingsdraad: 'de database-URL',
ssl: {
afwijzenOngeautoriseerd: vals
}
}
});moduul.export = db;
Open vervolgens de index.js bestand en voeg de onderstaande code toe implementeert een eenvoudige REST API met vier trajecten.
const uitdrukken = vereisen("nadrukkelijk");
const app = uitdrukken()
const DB = vereisen('./db')
const PORT = proces.env. HAVEN || 5000app.gebruik (express.json())
app.gebruik (express.urlencoded({ verlengd: WAAR }))app.get('/', (req, res) => res.send('Hallo Wereld!' ))
// Haal alle gebruikers op
app.get('/gebruikers', asynchroon (req, res) => {
poging {
const gebruikers = wachten db.select().from('gebruikers')
res.json (gebruikers)
} vangst (fout) {
troosten.fout (fout)
res.status(500.json({ bericht: 'Fout bij ophalen gebruikers' })
}
})
app.post('/gebruikers', asynchroon (req, res) => {
poging {
const gebruiker = wachten DB('gebruikers').invoegen({ naam: req.body.name }).returning('*')
res.json (gebruiker)
} vangst (fout) {
troosten.fout (fout)
res.status(500.json({ bericht: 'Fout bij aanmaken gebruiker' })
}
})// Verwijder een bestaande gebruiker
app.verwijderen('/gebruikers/:id', asynchroon (req, res) => {
poging {
const { id } = vereiste parameters
const gebruiker = wachten DB('gebruikers'.where({ id }).delete().returning('*')
res.json (gebruiker)
} vangst (fout) {
troosten.fout (fout)
res.status(500.json({ bericht: 'Fout bij verwijderen gebruiker' })
}
})
app.listen (PORT, () => troosten.log(`Server op bij PORT:${PORT}`))
Stel het bestand migratie.js in
Maak een nieuwe folder, scripts, voeg in de hoofdmap van uw project een nieuw bestand toe, migreren.js, en voeg ten slotte de onderstaande code toe:
const DB = vereisen('../db');
(asynchroon () => {
poging {
wachten db.schema.dropTableIfExists('gebruikers')
wachten db.schema.withSchema('openbaar'.createTable('gebruikers', (tabel) => {
tabel.incrementen()
tabel.tekenreeks('naam')
})
troosten.log('Aangemaakte gebruikerstabel!')
verwerken.afsluiten(0)
} vangst (fout) {
troosten.log (fout)
verwerken.afsluiten(1)
}
})()
Deze code maakt een nieuw gebruikers tabel in de database met twee kolommen: een automatisch oplopend primair sleutelveld en een naamveld.
Voeg ten slotte deze opdrachten toe aan uw pakket.json bestand.
"scripts": {
"begin": "knooppunt index.js",
"migreren": "knooppuntscripts/migrate.js",
},
Ten slotte, om de gebruikerstabel in de database te maken, moet u het migreren.js bestand als een script op uw terminal met behulp van de onderstaande opdracht.
npm run migreren
Voordat u de opdracht uitvoert, moet u er echter voor zorgen dat u het Externe database-URL uit Render's PostgreSQL-instantie-instellingeninformatie en plak deze in het db.js bestand als verbindingsreeks.
Hierdoor wordt een verbinding tot stand gebracht met de database-instantie vanaf uw lokale computer, zodat u de tabel kunt maken voordat u de API implementeert. Zodra de tabel is gemaakt, kunt u naar de PostgreSQL-instantie van uw Render gaan en de Interne database-URL, en update de db.js bestand dienovereenkomstig.
Implementeer de REST API op Render
Eerst, maak een nieuwe repository op GitHub en druk op de projectcode. Log vervolgens in op uw Render-account, klik op de Nieuw+ knop en selecteer de Webservice optie uit het vervolgkeuzemenu.
Open ten slotte uw GitHub-account, selecteer de repository van uw project en maak er verbinding mee op Render.
Geef op de instellingenpagina van de webservice een naam op voor de nieuwe service, specificeer de hoofdmap van het project, de build- en startopdracht en klik ten slotte op Webservice maken. Zodra het implementatieproces is voltooid, kopieert u de verstrekte URL om de eindpunten op Postman te testen.
Test de API-eindpunten op Postman
Postman is een populaire tool voor het ontwikkelen en testen van API's. Om kennis te maken met Postman, leer hoe u het kunt gebruiken om een API te testen.
Om de geïmplementeerde API te testen, maakt u een NA verzoek aan de /gebruikers eindpunt om gegevens op te slaan in de PostgreSQL-database.
Maak ten slotte een GET-verzoek om de opgeslagen gegevens op te halen.
Is Render een levensvatbaar alternatief?
Render biedt een eenvoudig installatieproces en naadloze integratie met populaire versiebeheersystemen, waardoor het een goed alternatief cloudhostingplatform is.
Bovendien maken het concurrerende prijsmodel en de ingebouwde ondersteuning voor populaire ontwikkelingstools het tot een betrouwbare en gebruiksvriendelijke optie voor zowel nevenprojecten als grote commerciële toepassingen.