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


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

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.

La version 3.2.0

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

betaWeb
Auteur

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

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

betaWeb
Auteur

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

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

betaWeb
Auteur

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

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

betaWeb
Auteur

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

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

betaWeb
Auteur

@Balsakup Alors ? ^^

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
Auteur

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 :)

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

betaWeb
Auteur

@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é.