rendr-examplesを眺めてみたメモ。
基本的な構成。npm install & grunt serverでhttp://localhost:3030で起動する(以下のexampleも同様)。
00ではindex.jsに直接書かれていたdataAdapterConfigを/configディレクトリ内のファイルに分離。
NODE_ENVの値で本番/開発環境の設定ファイル切り替えを行う
middlewareの追加方法のサンプル。
/server/middlewareディレクトリが追加。index.js内で以下の二つの関数を呼び出している。
- リクエストのlocaleを設定する
addLocaleToRequest - ダミーのAPIからデータを取得する
fetchDataForAppfetchDataForAppはmodel/view/controllerから利用できるようになる
sessionを使ったサンプル。indexにThere have been 4 requests to this app in your session.と表示され、リロードのたび更新される。
express.cookieParserとexpress.sessionを使う。configにsession.secretを追記している。
カウンターは/server/middleware/incrementCounter.jsをindex.jsから呼び出して更新している。
/app以下にmainとlanding_pageディレクトリができている。アプリをmainApp、landingPageAppの二つ起動している。
landingPageAppは普通のExpressアプリ(http://localhost:3030/landing_page)。mainAppの方はRendrアプリ。
Rendrアプリのconfigは/app/main/index.jsにて設定。
requirejsを使ったサンプル(標準はCommonJS)。package.jsonに以下が追記されている。
- requirejs
- grunt-contrib-requirejs
- grunt-rendr-requirejs
00のサンプルのroutes.jsなどを見比べると違いがよくわかる。
app/views/app_view.jsが追加されている。app.jsにgetAppViewClass関数を追記してnode_modules/rendr/shared/app.jsのgetAppViewClassをオーバーライドしている。app/views/app_view.jsではpostInitializeの挙動を変えている(ロード中に画面の右上にloading…の文字を表示している)