2012/08/18

[node] node.js+matador+stylusの環境構築

nodeを使ったwebアプリの開発を実験中ですが、当初expressを使って作り始めましたが、 MVCアーキテクチャに則って作るべきと思い、妥当なフレームワークを探してました。
そこで見付けたのが、matadorというフレームワークです。
MVCアーキテクチャで実装でき、mongodbと相性が良さそうです。

matadorのインストールは、npmを使って簡単に出来ます。

 $ nvm use v0.8.4
 $ npm install matador -g      # matador コマンドのインストール
 $ matador init your_app_name  # アプリの生成
 $ cd your_app_name
 $ npm install matador         # matador moduleのインストール
 $ node all/server.js          # 起動

この段階で、node+matadorのアプリ開発環境ができた状態です。
ここにstylusを投入したくて、stylusインストール後、server.jsを修正して、以下のようにしました。

stylusインストール
 $ cd your_app_name
 $ npm install stylus
server.js

   :
app.configure(function () {

  app.set('view engine', 'html');
  app.register('.html', matador.engine);

  // Use the cache helper's no-cache middleware.
  app.use(app.getHelper('Cache').auditHeadersMiddleware);
  app.use(app.getHelper('Cache').noCacheMiddleware);

  app.use(matador.cookieParser());
  app.use(matador.session({secret: 'boosh'}));

  // TODO: Add JSON body parser middleware
  app.use(app.requestDecorator());
  app.use(app.preRouter());

  app.use(express.bodyParser());
  // stylusを使うために、↓を追加。
  app.use(require('stylus').middleware(__dirname + '/app/public'));
});
   :
この状態で、.cssがなければnode起動時に.stylを.cssに変換してくれるんですが、 一度作られると、.stylを編集しても.cssに変換されませんでした。
なので、node_devを使えば、良さそうです。

express
http://expressjs.com/
matador
http://obvious.github.com/matador/
stylus
http://learnboost.github.com/stylus/
2012年に使いたいJavaScriptのMVCフレームワーク14選
http://memo.yomukaku.net/entries/8nZdDFu
node.jsの開発時に役立つモジュール
http://blog.asial.co.jp/794

2012/08/11

[emacs] jade-mode, stylus-mode

node(node.js)+expressを使ったWebアプリケーションを書く環境を整えています。
僕はEmacsを使っているんで、expressのテンプレートエンジンであるJadeとCSSメタ言語Stylusを Emacsで書くために、jade-modeをインストールしました。
ので、その設定を書いときます。


jade-modeは、 https://github.com/brianc/jade-mode/ からもってきます。
jade-modeがstylusモードを内包していました。


.emacsには、以下を追加します。

  (add-to-list 'load-path "/path/to/jade-mode")
  (require 'stylus-mode)
  (require 'jade-mode)    
  (add-to-list 'auto-mode-alist '("\\.styl$" . stylus-mode))
  (add-to-list 'auto-mode-alist '("\\.jade$" . jade-mode))
簡単すね。