[NodeJS] AdonisJS

Par betaWeb, il y a 9 ans


Salut à toutes et à tous,

J'ai découvert il y a peu un Framework NodeJs plutôt sympa, j'ai nommé AdonisJS (http://adonisjs.com/).
Son approche est simple : proposer un framework MVC (très fortement) inspiré de Laravel (basé donc sur un système de providers); ce qui fait que, si on connait déjà Laravel, il est très facile de rapidement mettre en place quelque chose de sympa (il m'a fallu environ deux heure pour créer un blog basique avec authentification via session, découverte incluse).
Quoi qu'il en soit, il est vraiment, vraiment cool à utiliser et mérite, à mon avis, que l'on s'y intéresse :)

Avez-vous déjà utilisé ce FW ? Si ou, qu'en avez-vous pensé ?

Aussi, si un de vous (@Grafikart ? ^^) est chaud pour proposer un tutoriel de présentation / une petite formation... :)
Je l'aurais bien fait, malheureusement je n'ai pas le temps :/

Un exemple sera plus parlant (Afficher une liste d'articles avec la catégorie associée) :

Routing :

const Route = use('Route') Route.get('/posts', 'PostsController.index').as('posts.index')

Model :

class Post { category () { return this.hasOne('App/Model/Category') } }

Controller :

class PostsController { // Injection des dépendances static get inject () { return ['App/Model/Post'] } constructor (Post) { this.Post = Post } * index (request, response) { const posts = yield this.Post .query() .with('category') .fetch() yield response.sendView('posts.index', { posts: posts.toJSON() }) // On envoie les data à la vue } }

View (Nunjucks, une syntaxe très proche de celle de Twig) :

{% for post in posts %} <h2>{{ post.title }}</h2> <small>{{ post.category.name }}</small> <p>{{ post.content }}</p> {% endfor %}

C'est un exemple somme toute basique, mais ça montre à quel point AdonisJS est proche de la philosophie Laravel :)

17 réponses

wnasirou, il y a 9 ans

Je suis partant pour un tutoriel sur AdonisJS. Je l'ai utilisé et il vraiment inspiré de Laravel.

wnasirou, il y a 9 ans

Je l'ai utilisé pour développer une application web de gestion de stock pour un de mes clients. Franchement, c'est un bon framework pour NodeJS qui mérite qu'on s'y penche là-dessus.

wnasirou, il y a 9 ans

La version 3.2.0

Balsakup, il y a 9 ans

Intéressant, je vais aller voir de plus près, j'essaie de quitter PHP, ca pourrait être une bonne alternative

betaWeb, il y a 9 ans

@Balsakup Pour quelle(s) raison(s) essayes-tu de "quitter" PHP ?

Balsakup, il y a 9 ans

@betaWeb j'en ai trop fait récemment, j'essaie de découvrir d'autres technos pour devenir polyvalent

betaWeb, il y a 9 ans

A ce moment là, avant de te lancer tête baissée dans AdonisJS, commence par au moins regarder la formation consacrée à NodeJS :)

Balsakup, il y a 9 ans

@betaWeb Je connais déjà NodeJS, mais pas cherché à faire de site web avec

betaWeb, il y a 9 ans

Autant pour moi :)
Alors tu vas t'éclater avec AdonisJS, il est facile de prise en main :)

Balsakup, il y a 9 ans

Je teste dès que j'ai un peu de temps, et ferai surement un retour ;)

betaWeb, il y a 8 ans

@Balsakup Tu as eu le temps de tester ? :)

Balsakup, il y a 8 ans

@betaWeb, très peu. Désolé. Avec les cours et les projets je suis un peu surbooké en ce moment

betaWeb, il y a 8 ans

@Balsakup Alors ? ^^

Balsakup, il y a 8 ans

J'avoue que j'ai pas trop regardé, j'ai juste installé et créé quelques petits controlleurs pour comprendre et voir le fonctionnement, et si c'était facile à prendre en main.

Il est très facile à prendre en main quand tu as déjà utilisé des frameworks web, car le comportement est le même.

Mais je pense pas faire un site avec, en ce moment je suis plus sur le Go, et ça m'intéresse un peu plus

betaWeb, il y a 8 ans

Perso j'ai un projet dans les cartons que j'aimerais concrétiser via ce framework, mais j'attends (avec impatience) la v4.0 qui intègrera un bon petit paquet d'outils supplémentaires intéressants (comme les tests unitaires par ex.)

En attendant, il reste complet pour créer un site ou une API assez simplement :)

Maenhyr, il y a 8 ans

@betaWeb, on ne peut pas faire de TU du tout ? Ou bien c'est juste mal intégré pour le moment ?

betaWeb, il y a 8 ans

@prbaron c'est pas encore complètement intégré, mais on peut en faire (cf ce dépot) :)
Cela dit, je n'en ai pas encore fait de mon côté.