Formazione di Express e Node.js da StrongLoop

Questa traduzione fornita da StrongLoop / IBM.

È possibile che questo documento non sia aggiornato poiché la documentazione è in inglese. Per gli ultimi aggiornamenti, fare riferimento alla documentazione in inglese.

FAQ

In che modo devo strutturare l’applicazione?

Non esiste una risposta definitiva a questa domanda. La risposta dipende dalla scalabilità dell’applicazione e dal team coinvolto. Per essere molto flessibile, Express non fornisce molte indicazioni in termini di struttura.

Le route e altre logiche specifiche dell’applicazione possono essere presenti in molti file, in qualsiasi struttura di directory desiderata. Visualizzare i seguenti esempi:

Inoltre, ci sono delle estensioni di terze parti per Express, le quali semplificano alcuni di questi modelli:

In che modo è possibile definire i modelli?

Express non ha nessuna nozione di database. Questo concetto viene lasciato a moduli Node di terzi, consentendo di interfacciarsi con quasi qualsiasi database.

Consultare LoopBack per un framework basato su Express incentrato sui modelli.

In che modo è possibile autenticare gli utenti?

L’autenticazione è un’altra area categorica in cui non si avventura Express. È possibile utilizzare qualsiasi schema di autenticazione desiderato. Per uno schema nome utente / password semplice, consultare questo esempio.

Quale motore di template supporta Express?

Express supporta qualsiasi motore di template conforme alla sigla (path, locals, callback). Per normalizzare le interfacce del motore di template e la memorizzazione in cache, consultare il progetto consolidate.js per il supporto. I motori di template potrebbero ancora non supportare Express.

In che modo è possibile gestire le risposte 404?

In Express, le risposte 404 non sono il risultato di un errore, pertanto il middleware di gestione degli errori non le individuerà. Questo accade perché una risposta 404 indica semplicemente l’assenza di ulteriori operazioni da effettuare; in altre parole, Express ha eseguito tutte le funzioni middleware e route e non ha riscontrato nessuna risposta da parte di quest’ultimi. L’unica cosa da fare è aggiungere una funzione middleware alla parte finale dello stack (sotto tutte le altre funzioni) per gestire una risposta 404:


app.use(function(req, res, next) {
  res.status(404).send('Sorry cant find that!');
});

In che modo è possibile impostare un gestore degli errori?

È possibile definire il middleware di gestione degli errori nello stesso modo in cui si definisce qualsiasi altro middleware, ad eccezione delle funzioni di gestione degli errori che hanno quattro argomenti invece di tre; nello specifico la firma (err, req, res, next):


app.use(function(err, req, res, next) {
  console.error(err.stack);
  res.status(500).send('Something broke!');
});

Per ulteriori informazioni, consultare Gestione degli errori.

In che modo è possibile eseguire il rendering dell’HTML normale?

Non è necessario farlo! Non è necessario “eseguire il rendering” dell’HTML con la funzione res.render(). Se si dispone di un file specifico, utilizzare la funzione res.sendFile(). Se si stanno gestendo molti asset da una directory, utilizzare la funzione middleware express.static().