AdonisJS : un framework Node.js moderne et complet
Tags: javascript, webdev, node, adonis
Published: 2023-12-20 13:48:38

[![Substack Newsletter](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qbg4qlzlytxbzbvj97ia.png)](https://benoitpetit.substack.com/subscribe)

> Je vous propose le premier d'une série d'articles sur Adonis. J'apprend et je partage avec vous mes découvertes 🙂

## **💡 C'est quoi Adonis JS ?**

Vous cherchez un framework Node.js qui soit performant, sécurisé et facile à maintenir ? Si oui, Adonis JS pourrait être la solution qu'il vous faut.

Adonis JS est un framework backend pour Node.js, écrit en TypeScript, qui permet de développer des applications web performantes, sécurisées et faciles à maintenir. Il est basé sur les principes de la convention sur la configuration, des batteries incluses et d'une documentation complète.

![presentation gif](https://media.giphy.com/media/Yxf82FChtCVWSWXQI2/giphy.gif "presentation gif")

## **⭐️ Caractéristiques**

Adonis JS offre de nombreuses fonctionnalités qui le rendent idéal pour le développement d'applications web complexes. Voici quelques-unes de ses caractéristiques principales :

* **TypeScript intégré** : Adonis JS utilise TypeScript comme langage de programmation, offrant ainsi une sécurité de type, une meilleure lisibilité, et une expérience de développement optimale sans nécessiter une configuration manuelle de TypeScript.
* **Convention sur configuration** : Suivant le principe de la convention sur la configuration, Adonis JS simplifie la mise en place de votre application en fournissant une structure de dossier standard, des noms de fichiers cohérents, et des conventions de codage. Ainsi, vous pouvez vous concentrer sur la logique métier plutôt que sur les détails techniques.
* **Batteries incluses** : Adonis JS propose une solution tout-en-un pour le développement web, éliminant le besoin d'installer de nombreux packages tiers. Il intègre un ORM (Lucid), un moteur de template (Edge), un client Redis, un système d’authentification, un système de validation, un système de test, et bien plus encore. Ces modules sont conçus pour fonctionner de manière harmonieuse, facilitant ainsi le processus de développement, et ils sont tous maintenus par l’équipe principale d’Adonis JS.
* **Documentation complète** : Adonis JS met à disposition une documentation officielle exhaustive et bien structurée, couvrant tous les aspects du framework et de ses modules officiels. Cette documentation inclut des guides techniques, des références, des livres de recettes et des tutoriels, facilitant ainsi l'apprentissage et la maîtrise d'Adonis JS.

## **📔 Exemples**

Voici quelques exemples qui montrent comment les fonctionnalités d'Adonis JS peuvent être utilisées dans la pratique :

* **TypeScript intégré** : Pour bénéficier de la sécurité de type et de la meilleure lisibilité offerte par TypeScript, il suffit d'installer le package `@adonisjs/core`.
* **Convention sur configuration** : Pour créer une application simple avec Adonis JS, il suffit de suivre les conventions de codage définies dans la documentation. Par exemple, pour créer une route, il suffit de créer un fichier `routes/index.js` contenant la fonction `index()`.
* **Batteries incluses** : Pour utiliser l'ORM Lucid, il suffit d'installer le package `@adonisjs/lucid`. Pour utiliser le moteur de template Edge, il suffit d'installer le package `@adonisjs/edge`.

## **🛠️ Installation**

Pour installer Adonis JS, vous avez besoin de Node.js version 14 ou supérieure. Vous pouvez vérifier la version de Node.js et npm en exécutant les commandes suivantes :

```
node -v
npm -v
```
Si vous n’avez pas Node.js installé, vous pouvez le télécharger depuis [le site officiel](https://nodejs.org).

Pour créer un nouveau projet Adonis JS, vous pouvez utiliser l'une des commandes suivantes, selon le gestionnaire de paquets que vous préférez :

```
npm init adonis-ts-app nom-du-projet
yarn create adonis-ts-app nom-du-projet
pnpm create adonis-ts-app nom-du-projet
```
Ces commandes vont télécharger le paquet starter Adonis JS et lancer le processus d'installation.

Lors de l'installation, vous serez invité à choisir le type de structure d'application souhaitée :

* **api** (Conçu pour créer un serveur API REST)
* **web** (Application web traditionnelle avec des modèles de rendu côté serveur)
* **slim** (La plus petite application AdonisJS possible)

Le choix de la structure d'application dépend de vos besoins spécifiques. Si vous développez une application web traditionnelle avec des pages statiques ou dynamiques, vous pouvez choisir la structure web. Si vous développez un serveur API REST uniquement, vous pouvez choisir la structure api. Si vous souhaitez la structure la plus minimaliste et minimiser l'empreinte de votre application, vous pouvez choisir la structure slim.

## **🚀 Lancement du serveur**
![installation gif](https://media.giphy.com/media/3XrAfHxRxropW/giphy.gif "installation gif")

Une fois votre projet créé, vous pouvez lancer le serveur de développement en exécutant la commande suivante dans le dossier de votre projet :

```
node ace serve --watch
```
- Cette commande va lancer le serveur HTTP et effectuer une compilation en mémoire de TypeScript vers JavaScript.
- L'option --watch permet de surveiller les changements dans les fichiers et de redémarrer le serveur automatiquement.
- Par défaut, le serveur démarre sur le port 3333 (défini dans le fichier .env). Vous pouvez voir la page d'accueil : [localhost:3333](http://localhost:3333)

## **🏁 Conclusion**

Adonis JS est un framework puissant et complet qui offre de nombreux avantages pour le développement d'applications web. Si vous recherchez un framework Node.js qui soit performant, sécurisé et facile à maintenir, Adonis JS est une excellente option à considérer.

Pour en savoir plus sur Adonis JS, vous pouvez consulter la documentation officielle : https://docs.adonisjs.com

Merci pour votre attention et à bientôt pour un prochain épisode 🙂 Ben.

---

> 🫶 Si vous aimez mes publications et souhaitez soutenir mon travail, vous pouvez faire un don en cliquant sur le lien Stripe Sponsor ci-dessous ou en scannant le code QR. [lien Stripe Sponsor](https://donate.stripe.com/00g6pJ6R19MJ15S7ss)

---

[![Stripe Sponsor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ohkf7lrymedkort4w9iz.png)](https://donate.stripe.com/00g6pJ6R19MJ15S7ss)

--- 

👀 See me here : 

- [Substack](https://benoitpetit.substack.com/subscribe)
- [Mastodon](https://piaille.fr/@codingben) 
- [(X) Twitter](https://twitter.com/codingben_)
- [Github](https://github.com/benoitpetit)
- [NPM Packages](https://www.npmjs.com/~codingben)
- [benoitpetit.dev](https://benoitpetit.dev)
- [Dev.to](https://dev.to/benoitpetit)