Node.jsでDIできるフレームワーク「Grasshopper」が気になる
Node.jsのMVCフレームワークでDependency InjectionをサポートするGrassHopperが気になってます。
以下はREADMEに記載されているDIの例です。
var gh = require('grasshopper'); var dependencies = { dataService: { getStock: function() { return 100; } } }; gh.addToContext(dependencies); gh.get('/', function() { this.renderText('There are ' + this.dataService.getStock() + ' units in stock!'); }); gh.serve(8080);
上記の例では this.dataService.getStock() が注入されています。この例では this.dataService.getStock() は即値で書かれている100を返しますが、外部から注入するものを切り替えれば、this.dataService.getStock()が返す値をDBから取得してくるように変えたりできます。
他にもHTTPレスポンスのGzip圧縮や、Basic認証、Digest認証、if-modified-since, if-none-match, if-range ヘッダのサポートなど多数の機能を備えているようです。
Grasshopperはnpmで以下のようにインストールできます(Node.js v0.4.1で確認)。
npm install grasshopper