Skip to content

Commit

Permalink
i18n(fr): Update guides/middleware.mdx file from #8176
Browse files Browse the repository at this point in the history
Signed-off-by: Thomas Bonnet <thomasbnt@protonmail.com>
  • Loading branch information
thomasbnt committed May 11, 2024
1 parent e1e2584 commit 0273a41
Showing 1 changed file with 14 additions and 11 deletions.
25 changes: 14 additions & 11 deletions src/content/docs/fr/guides/middleware.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,28 @@ description: Apprendre à utiliser le middleware dans Astro.
i18nReady: true
---
import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro';
import { Steps } from '@astrojs/starlight/components';

**Middleware** vous permet d'intercepter les demandes et les réponses et d'injecter des comportements de manière dynamique chaque fois qu'une page ou un point de terminaison est sur le point d'être rendu. Ce rendu a lieu au moment de la construction pour toutes les pages pré-rendues, mais il a lieu lorsque la route est demandée pour les pages rendues à la demande.

Le middleware vous permet également de définir et de partager des informations spécifiques aux requêtes entre les points de terminaison et les pages en modifiant un objet `locals` disponible dans tous les composants Astro et les points de terminaison de l'API. Cet objet est disponible même lorsque ce middleware s'exécute au moment de la construction.

## Utilisation basique

<Steps>
1. Créez `src/middleware.js|ts` (Alternativement, vous pouvez créer `src/middleware/index.js|ts`.)

2. Dans ce fichier, exportez une fonction [`onRequest()`](/fr/reference/api-reference/#onrequest) à laquelle on peut passer un objet [`context`](#objet-context) et une fonction `next()`. Il ne doit pas s'agir d'une exportation par défaut.

```js title="src/middleware.js"
export function onRequest ({ locals, request }, next) {
// intercepter les données d'une requête
// optionnellement, modifie la propriété dans `locals`
locals.title = "Nouveau titre";
```js title="src/middleware.js"
export function onRequest (context, next) {
// intercepter les données d'une requête
// optionnellement, modifie la propriété dans `locals`
context.locals.title = "Nouveau titre";

// renvoie une Réponse ou le résultat de l'appel à `next()`
return next();
};
// renvoie une Réponse ou le résultat de l'appel à `next()`
return next();
};
```

3. Dans n'importe quel fichier `.astro`, accédez aux données de réponse en utilisant `Astro.locals`.
Expand All @@ -35,6 +37,7 @@ Le middleware vous permet également de définir et de partager des informations
<h1>{data.title}</h1>
<p>This {data.property} provient du middleware.</p>
```
</Steps>

### Objet `context`

Expand All @@ -55,11 +58,11 @@ Les [Integrations](/fr/guides/integrations-guide/) peuvent définir des proprié
Vous pouvez stocker n'importe quel type de données dans `locals` : des chaînes, des nombres, et même des types de données complexes tels que des fonctions et des cartes.

```js title="src/middleware.js"
export function onRequest ({ locals, request }, next) {
export function onRequest (context, next) {
// intercepter les données de réponse d'une requête
// optionnellement, modifie la propriété dans `locals`
locals.user.name = "John Wick";
locals.welcomeTitle = () => {
context.locals.user.name = "John Wick";
context.locals.welcomeTitle = () => {
return "Welcome back " + locals.user.name;
};

Expand Down

0 comments on commit 0273a41

Please sign in to comment.