Laravelライクなnode.jsのフレームワーク「adonis.js」



Node.jsのバージョンも一気に4まで上がり、es6の仕様が大幅に取り入れられ
class構文もサポートされました。

Node.jsのWebフレームワークも色々とありますが、
es6の仕様をふんだんに取り込んだフレームワークはマダマダ多くない印象があります。

そんな時期に先手を切って、es6の機能を実装したMVCフレームワークがリリースされています。

adonis.js


adonis.js(アドニス)はLaravelフレームワークの影響を強く受けており、
Laravelライクに作られています。

Routeを例に挙げるとこうです。

// routing example

// #get
Route.get('/', function * () {
  return 'Hello world.'
})

// #post
Route.post('/', function * () {
  return 'Hello world.'
})

// controller
Route.get('/home','HomeController.index')

// named route
Route.get('/user/:id', 'ProfileController.show').as('profile')


コントローラーに関してはclassが使用可能で見通しが良くなっています。

'use strict'

// app/Http/Controllers/HomeController.js
class HomeController{
  // index method
  *index(request,response){
  	  // viewの呼び出し
    const view =
    	yield response.view('index.html',
    		// テンプレートに変数メッセージの割当
    		{ message : 'Helllo Adonis Framework' } )
    response.ok(view)
  }

}

module.exports = HomeController


Laravelに影響を受けているだけあり、共通する部分も幾つかあります。

試しにインストールして、少し触ってLaravelと比較してみた感想です。
私自身、Laravelを4.0リリース当初から使っています

  1. artisanコマンド -> aceコマンド (コマンド数はまだ少ないが、使い勝手は似ている)
  2. Eloquent Model -> Lucid(Eloquentを使ったことがあるなら習得がしやすそう)
  3. Colelction -> lodash.jsベース(chain method)
  4. bladeテンプレート -> twigより
  5. validation -> 定義の仕方はほぼ同じ
  6. フォルダ構造もよく似ている
  7. namespaceのような概念も取り入れられている


adonis.jsはリリースされて間もないので、情報はまだまだ少ないですが
今後はコミュニティーが盛んになってほしいです。

adonis.jsのロードマップ


何より、javascript一択で開発が出来ると言う部分は大きいですね。

 

この記事のカテゴリ
プログラミング

この記事のタグ