La distribuzione delle app Node.js non dovrebbe essere una seccatura. Rendi operativo il tuo server Express.js con la piattaforma conveniente e intuitiva di Render.

Alla fine del 2022, Heroku ha interrotto la sua opzione di livello gratuito con conseguente rimozione del piano di abbonamento gratuito precedentemente disponibile per il web hosting e altri servizi cloud nel suo ecosistema.

I livelli gratuiti sono particolarmente utili e convenienti se intendi distribuire e ospitare applicazioni per un breve periodo. Fortunatamente, esiste una piattaforma cloud alternativa che, come Heroku, offre un livello gratuito per i suoi servizi cloud tra gli altri vantaggi.

In questo articolo, esploreremo come distribuire un'API REST Express.js su Render, una piattaforma di hosting basata su cloud.

Che cos'è il rendering?

Render è una piattaforma di hosting cloud che fornisce un modo semplice e senza problemi per distribuire e gestire siti Web statici, applicazioni Web complete, API di back-end o database sul cloud. Le caratteristiche includono:

instagram viewer
  • Interfaccia user-friendly: Render fornisce un'interfaccia semplice e intuitiva che semplifica il processo di distribuzione delle applicazioni create utilizzando i linguaggi di programmazione più diffusi come Python e Node.js.
  • Database integrati: Render offre supporto integrato per database popolari come PostgreSQL, MySQL e MongoDB, rendendolo facile da configurare e integrare i database nelle applicazioni senza dover configurare un database separato server.
  • Flusso di lavoro di distribuzione senza soluzione di continuità: Render fornisce funzionalità come distribuzioni automatizzate, rollback e integrazioni con servizi popolari come GitHub e GitLab.
  • Domini personalizzati e SSL: Render offre la possibilità di configurare nomi di dominio personalizzati per siti Web e applicazioni Web e include certificati SSL gratuiti per l'accesso HTTPS sicuro.

Confronto tra rendering e Heroku

Come le altre piattaforme cloud, Render ha i suoi vantaggi e svantaggi. Ma come si confronta con le popolari soluzioni cloud come Heroku?

  • Semplicità: Render fornisce un'interfaccia intuitiva per la distribuzione e la gestione delle applicazioni, con particolare attenzione alla facilità d'uso e alla configurazione minima.
  • Ridimensionamento automatico: Render ridimensiona automaticamente le applicazioni in base alla domanda, senza richiedere regolazioni manuali o configurazioni complesse.
  • Efficacia dei costi: Render offre prezzi convenienti che includono un livello gratuito per singoli progetti e prezzi relativamente bassi per team e piani organizzativi, rendendolo un'opzione economica per l'hosting sia di applicazioni Web su piccola scala che di grandi pubblicità progetti.
  • Flessibilità limitata: La sua semplicità e la configurazione minima possono essere un limite per progetti avanzati e complessi che richiedono maggiore personalizzazione e controllo sull'ambiente di hosting.

Imposta un nuovo progetto su Render

Per iniziare, vai a Sito web di render e registrati e accedi al tuo account.

Render semplifica la distribuzione e la gestione delle API di back-end offrendo il supporto integrato per i linguaggi di programmazione e i servizi Web più diffusi che semplificano il processo di distribuzione.

Questa guida utilizzerà la funzionalità dei servizi Web per distribuire un'API REST Express.js. Per proseguire, dovrai prima configurare un'istanza di database PostgreSQL su Render.

Nella pagina panoramica, fare clic su Nuovo PostgreSQL pulsante per configurare una nuova istanza.

Quindi, inserisci il nome del tuo database e fai clic su Crea banca dati. Infine, copia il file URL del database interno fornito. Lo utilizzerai per configurare la connessione tra la tua Express REST API e il database PostgreSQL.

In sostanza, l'URL del database interno viene utilizzato per stabilire una connessione tra le applicazioni in esecuzione sui server di Render come un'API distribuita o un'applicazione Web completa.

Tuttavia, se si desidera utilizzare solo il database PostgreSQL da un'applicazione distribuita su un'altra piattaforma, è possibile utilizzare il URL del database esterno per configurare la connessione al database.

Crea un'API REST Express.js

Vai avanti e creare un server Web Express.js. Successivamente, installa i seguenti pacchetti:

npm install pg knex

Puoi trovare il codice di questo progetto in questo Deposito GitHub.

Configurare la connessione al database

Per impostare la connessione tra l'API Express.js e l'istanza PostgreSQL di Render, nella directory principale della cartella del progetto, crea un db.js file e aggiungere il codice qui sotto.

cost knex = richiedere('knox');
cost db = knex({
cliente: 'pag',
connessione: {
stringa di connessione: 'l'URL del database',
SSL: {
rifiutareNon autorizzato: falso
}
}
});

modulo.esportazioni = db;

Quindi, apri il file index.js file e aggiungi il codice sottostante implementa una semplice API REST con quattro percorsi.

cost espresso = richiedere("esprimere");
cost app = espresso()
cost db = richiedere('./db')
cost PORTA = process.env. PORTO || 5000

app.use (express.json())
app.use (express.urlencoded({ esteso: VERO }))

app.get('/', (req, res) => res.send('Ciao mondo!' ))

// Ottieni tutti gli utenti
app.get('/utenti', asincrono (req, res) => {
Tentativo {
cost utenti = aspetta db.select().from('utenti')
res.json (utenti)
} presa (errore) {
consolare.errore (errore)
res.stato(500).json({ Messaggio: "Errore durante il recupero degli utenti" })
}
})


app.post('/utenti', asincrono (req, res) => {
Tentativo {
cost utente = aspetta db('utenti').inserire({ nome: req.body.name }).returning('*')
res.json (utente)
} presa (errore) {
consolare.errore (errore)
res.stato(500).json({ Messaggio: 'Errore durante la creazione dell'utente' })
}
})

// Elimina un utente esistente
app.delete('/utenti/:id', asincrono (req, res) => {
Tentativo {
cost { id } = req.params
cost utente = aspetta db('utenti').where({ id }).delete().returning('*')
res.json (utente)
} presa (errore) {
consolare.errore (errore)
res.stato(500).json({ Messaggio: "Errore durante l'eliminazione dell'utente" })
}
})

app.listen (PORTA, () => consolare.tronco d'albero(`Server attivo su PORT:${PORTA}`))

Imposta il file migrate.js

Crea una nuova cartella, script, nella directory principale del tuo progetto, aggiungi un nuovo file, migrare.js, e infine, aggiungi il codice qui sotto:

cost db = richiedere('../db');
(asincrono () => {
Tentativo {
aspetta db.schema.dropTableIfExists('utenti')
aspetta db.schema.withSchema('pubblico').crea tabella('utenti', (tabella) => {
tabella.incrementi()
tabella.stringa('nome')
})
consolare.tronco d'albero('Tabella utenti creata!')
processo.exit(0)
} presa (errare) {
consolare.log (errore)
processo.exit(1)
}
})()

Questo codice creerà un nuovo file utenti tabella nel database con due colonne: un campo chiave primaria a incremento automatico e un campo nome.

Infine, aggiungi questi comandi al tuo file pacchetto.json file.

"copioni": {
"inizio": "nodo index.js",
"migrare": "script nodo/migrate.js",
},

Infine, per creare la tabella dell'utente sul database, è necessario eseguire il file migrate.js file come script sul tuo terminale utilizzando il comando seguente.

npm esegue la migrazione

Tuttavia, prima di eseguire il comando, assicurarsi di recuperare il file URL del database esterno dalle informazioni sulle impostazioni dell'istanza PostgreSQL di Render e incollarle nel file db.js file come stringa di connessione.

Ciò stabilirà una connessione con l'istanza del database dal tuo computer locale, consentendoti di creare la tabella prima di distribuire l'API. Una volta creata la tabella, puoi quindi andare all'istanza PostgreSQL di Render, recuperare il file URL del database internoe aggiornare il file db.js file di conseguenza.

Distribuisci l'API REST su Render

Primo, creare un nuovo repository su GitHub e spingere il codice del progetto. Quindi, accedi al tuo account Render, fai clic su Nuovo+ pulsante e selezionare il Servizio web opzione dal menu a discesa.

Infine, accedi al tuo account GitHub, seleziona il repository del tuo progetto e connettiti ad esso su Render.

Nella pagina delle impostazioni del servizio Web, fornire un nome per il nuovo servizio, specificare la directory principale del progetto, il comando build e start e, infine, fare clic su Crea servizio web. Una volta completato il processo di distribuzione, copia l'URL fornito per testare gli endpoint su Postman.

Testa gli endpoint API su Postman

Postman è uno strumento popolare per lo sviluppo e il test delle API. Per familiarizzare con Postman, scopri come usarlo per testare un'API.

Per testare l'API distribuita, crea un file INVIARE richiesta al/utenti endpoint per archiviare i dati nel database PostgreSQL.

Infine, effettua una richiesta GET per recuperare i dati archiviati.

Il rendering è una valida alternativa?

Render offre un processo di configurazione semplice e un'integrazione perfetta con i sistemi di controllo della versione più diffusi, rendendolo una buona piattaforma di hosting cloud alternativa.

Inoltre, il suo modello di prezzo competitivo e il supporto integrato per i più diffusi strumenti di sviluppo lo rendono un'opzione affidabile e di facile utilizzo sia per i progetti secondari che per le grandi applicazioni commerciali.