Un aperçu d'AdonisJS pour le développement Node
Si vous avez déjà construit quelques backends Node.js avec Express, vous connaissez le schéma : installer un routeur, choisir une bibliothèque de validation, configurer un ORM, mettre en place l’authentification, et répéter le processus pour chaque nouveau projet. Ça fonctionne, mais vous assemblez le framework vous-même à chaque fois.
AdonisJS adopte une approche différente. C’est un framework backend TypeScript tout-en-un pour Node.js qui fournit tout ce dont vous avez besoin dans un package cohérent.
Points clés à retenir
- AdonisJS est un framework backend tout-en-un, TypeScript-first pour Node.js qui suit le pattern MVC et intègre nativement le routage, un ORM, la validation, l’authentification et bien plus encore.
- Contrairement à Express, qui vous oblige à assembler votre propre stack pour chaque projet, AdonisJS fournit un écosystème unifié où tous les composants fonctionnent ensemble sans friction de configuration.
- AdonisJS v7 introduit la sécurité de type de bout en bout grâce à la génération de code, détectant les fautes de frappe dans les routes, les incohérences de forme de réponse et les props Inertia incorrectes au moment de la compilation plutôt qu’à l’exécution.
- Le framework convient aux équipes qui construisent des API REST, des applications web full-stack ou des plateformes SaaS et qui souhaitent des conventions de type Laravel ou Rails dans l’écosystème Node.js.
Qu’est-ce qu’AdonisJS ?
AdonisJS est un framework web backend-first pour Node.js, construit avec TypeScript comme citoyen de première classe. Il suit le pattern MVC et fournit nativement le routage, un ORM, la validation, l’authentification, la gestion de fichiers, l’envoi d’emails, la limitation de débit et le support des tests.
Il est en développement actif depuis 2015. La version actuelle, AdonisJS v7, représente des années de perfectionnement en conditions réelles et introduit la sécurité de type de bout en bout sur l’ensemble de la stack.
Si vous avez travaillé avec Laravel ou Rails, les conventions vous sembleront familières. Si vous venez d’Express ou Fastify, la différence est immédiate : vous arrêtez d’assembler des outils et commencez à construire votre application.
AdonisJS vs Express : la différence fondamentale
Express est minimaliste par conception. Il vous fournit le routage et les middlewares, puis se retire. C’est utile lorsque vous avez besoin d’un contrôle total, mais cela signifie que chaque projet commence par le même travail de configuration : choisir des packages, écrire du code de liaison et maintenir la compatibilité entre eux.
AdonisJS résout ce problème avec un écosystème unifié. Voici à quoi cela ressemble en pratique :
| Fonctionnalité | AdonisJS | Express |
|---|---|---|
| Support TypeScript | Intégré | Configuration manuelle |
| ORM | Lucid (inclus) | À votre choix |
| Authentification | Intégrée | Manuelle (ex : Passport) |
| Validation | VineJS (inclus) | Manuelle (ex : Zod, Joi) |
| Outils CLI | Ace CLI | Aucun |
| Upload de fichiers | Drive intégré | Manuel |
Avec Express, vous prenez ces décisions sur chaque projet. Avec AdonisJS, elles sont déjà prises, et les composants fonctionnent ensemble sans friction de configuration.
À quoi ressemble réellement le backend TypeScript d’AdonisJS
Les contrôleurs reçoivent un objet HttpContext typé. Les validateurs sont définis avec VineJS, qui exécute une validation asynchrone et s’intègre directement avec l’ORM pour les vérifications au niveau de la base de données. Les modèles utilisent des décorateurs qui correspondent à vos schémas de migration, de sorte que vos définitions de colonnes restent synchronisées.
export default class PostsController {
async store({ request, auth, response }: HttpContext) {
const data = await request.validateUsing(createPostValidator)
const post = await auth.user!.related('posts').create(data)
return response.created(post)
}
}
C’est un gestionnaire POST validé, authentifié et connecté à la base de données. Pas d’imports de middleware à rechercher, pas de casting de type manuel.
Note : L’assertion non-null (
!) surauth.userindique à TypeScript que l’utilisateur existe forcément. En pratique, vous protégeriez cette route avec un middleware d’authentification qui garantit que l’utilisateur est authentifié avant l’exécution du contrôleur.
Discover how at OpenReplay.com.
Ce qu’apporte AdonisJS v7
AdonisJS v7 se concentre sur une fonctionnalité phare : la sécurité de type de bout en bout alimentée par la génération de code. Le framework analyse vos routes, transformateurs et composants de page Inertia au moment de la compilation et génère automatiquement les types TypeScript.
Cela signifie :
- Les noms de routes sont vérifiés par typage. Une faute de frappe dans
urlFor('posts.shwo', ...)est une erreur de compilation, pas une erreur 404 à l’exécution. - Les formes de réponse sont des contrats typés. Les transformateurs définissent quelles données quittent votre serveur. Le code frontend importe ces types directement, sans duplication manuelle d’interface.
- Les props Inertia sont validées au moment de la compilation. Si votre contrôleur envoie les mauvaises props à un composant de page, TypeScript le détecte avant le navigateur.
La v7 fournit également des kits de démarrage améliorés avec des flux de connexion et d’inscription fonctionnels, des outils TypeScript plus rapides alimentés par SWC, l’intégration OpenTelemetry via @adonisjs/otel, et un module de chiffrement réécrit avec support de la rotation des clés.
AdonisJS v7 nécessite Node.js 24 ou plus récent, alignant le framework avec les fonctionnalités modernes du runtime Node.
Qui devrait l’utiliser
AdonisJS convient aux équipes qui construisent des API REST, des applications web full-stack ou des plateformes SaaS et qui souhaitent une structure sans surcharge d’entreprise. Il n’essaie pas de remplacer Express pour les scripts légers ou les microservices avec une logique minimale. Mais pour les applications avec de vrais modèles de données, de l’authentification et des règles métier, la différence de productivité est significative.
Le framework supporte plusieurs approches de rendu — templates rendus côté serveur avec Edge, SPA full-stack via Inertia.js, ou backends API purs — tout en gardant le code backend cohérent pour les trois approches.
Conclusion
AdonisJS vous donne ce qu’Express ne fournit pas : une boîte à outils backend complète et cohérente qui fonctionne ensemble dès le premier jour. Avec les fonctionnalités de sécurité de type de la v7, l’écart entre ce que vous écrivez sur le serveur et ce que votre frontend consomme se réduit à presque rien.
Si vous démarrez un nouveau projet Node.js et souhaitez passer moins de temps à configurer et plus de temps à construire, AdonisJS mérite un examen sérieux.
FAQ
Oui. AdonisJS est en développement actif depuis 2015 et est utilisé en production par des équipes qui construisent des plateformes SaaS, des API REST et des applications web full-stack. La version 7 est la dernière version stable avec une communauté active et un développement continu.
Absolument. AdonisJS supporte Inertia.js, qui vous permet de construire des SPA full-stack avec React, Vue ou Svelte tout en gardant votre logique backend dans les contrôleurs AdonisJS. Vous pouvez également l'utiliser comme backend API pur et connecter n'importe quel frontend de votre choix.
AdonisJS inclut Lucid, son propre ORM construit au-dessus de Knex.js. Lucid supporte les modèles de style Active Record, les migrations, les seeders, les factories et les relations. Il fonctionne nativement avec PostgreSQL, MySQL, SQLite et MSSQL.
Le changement architectural est significatif puisqu'AdonisJS est guidé par les conventions tandis qu'Express est sans opinion. Cependant, si vous utilisez déjà TypeScript et un ORM comme Prisma ou TypeORM, de nombreux concepts se transfèrent directement. La documentation officielle fournit des guides clairs pour chaque fonctionnalité principale.
Gain Debugging Superpowers
Unleash the power of session replay to reproduce bugs, track slowdowns and uncover frustrations in your app. Get complete visibility into your frontend with OpenReplay — the most advanced open-source session replay tool for developers. Check our GitHub repo and join the thousands of developers in our community.