FAQ
Comment puis-je structurer mon application ?
Il nâexiste pas de rĂ©ponse dĂ©finitive Ă cette question. La rĂ©ponse dĂ©pend de lâĂ©chelle de votre application et de lâĂ©quipe qui est impliquĂ©e. Pour ĂȘtre aussi flexible que possible, Express ne fait aucune supposition en terme de structure.
Les routes et la logique propre Ă lâapplication peuvent ĂȘtre opĂ©rationnelles dans autant de fichiers que vous le souhaitez, et dans les structures de rĂ©pertoire que vous prĂ©fĂ©rez. Pour plus dâinspiration, consultez les exemples suivants :
Il existe aussi des extensions tiers pour Express, permettant de simplifier certains de ces modĂšles :
Comment puis-je définir des modÚles ?
Express ne connaĂźt pas les bases de donnĂ©es. Ce concept est laissĂ© aux modules Node tiers, vous permettant ainsi dâinteragir avec quasiment toutes les bases de donnĂ©es.
Voir LoopBack pour obtenir une infrastructure basée sur Express et centrée autour de modÚles.
Comment puis-je authentifier des utilisateurs ?
Lâauthentification est une autre partie complexe dans laquelle Express ne sâaventure pas. Vous pouvez utiliser tous les schĂ©mas dâauthentification que vous voulez. Pour un schĂ©ma simple de type nom dâutilisateur/mot de passe, voir cet exemple.
Quels moteurs de modĂšles Express prend-il en charge ?
Express prend en charge tous les moteurs de modĂšles conformes Ă la signature (path, locals, callback)
.
Pour normaliser les interfaces de moteur de modĂšles et la mise en cache, voir le
projet consolidate.js
pour la prise en charge. Des moteurs de modÚles non répertoriés peuvent encore prendre en charge la signature Express.
For more information, see Using template engines with Express.
Comment puis-je gérer des réponses 404 ?
Dans Express, Ă©tant donnĂ© que les rĂ©ponses 404 ne sont pas le rĂ©sultat dâune erreur, le middleware de traitement dâerreurs ne les traite pas. Ce comportement est dĂ» au fait quâune rĂ©ponse 404 indique simplement lâabsence dâun travail supplĂ©mentaire Ă effectuer. En dâautres termes, Express a exĂ©cutĂ© toutes les routes et fonctions middleware, et aucune nâa rĂ©pondu. Tout ce que vous avez Ă faire est dâajouter une fonction middleware Ă la toute fin de la pile (en-dessous de toutes les autres fonctions) pour gĂ©rer une rĂ©ponse 404 :
app.use((req, res, next) => {
res.status(404).send("Sorry can't find that!")
})
Add routes dynamically at runtime on an instance of express.Router()
so the routes are not superseded by a middleware function.
Comment puis-je configurer un gestionnaire dâerreurs ?
Vous pouvez dĂ©finir un middleware de traitement dâerreurs de la mĂȘme façon quâun autre middleware,
Ă lâexception quâil faudra 4 arguments au lieu de 3 ; et plus particuliĂšrement avec la signature (err, req, res, next)
:
app.use((err, req, res, next) => {
console.error(err.stack)
res.status(500).send('Something broke!')
})
Pour plus dâinformations, voir Traitement dâerreurs.
Comment puis-je générer un fichier HTML simple ?
Vous ne pouvez pas ! Il nâest pas nĂ©cessaire de âgĂ©nĂ©rerâ un fichier HTML avec la fonction res.render()
.
Si vous avez un fichier spécifique, utilisez la fonction res.sendFile()
.
Si vous utilisez plusieurs actifs dâun rĂ©pertoire, utilisez la fonction middleware express.static()
.
What version of Node.js does Express require?
- Express 4.x requires Node.js 0.10 or higher.
- Express 5.x requires Node.js 18 or higher.