gist

2012年4月11日水曜日

bootstrapped-socket-express を使ってみた

bootstrapped-socket-express は、express, socket.io, bootstrapを組み合わせたシンプルなアプリの雛形です。テストに mocha が使えます。connect-assetを使ってcssやjqueryをまとめています。CoffeeScriptです。

インストールから起動まで。

$ npm install -g bootstrapped-socket-express
$ bootstrapped new sample_app
Success!
Next, you should:
    cd sample_app
    sudo npm install
And to start your app:
    node server.js
$ cd sample_app
$ npm install
$ node server.js
   info  - socket.io started
Listening on port 3000

起動したら、http://localhost:3000 にブラウザからアクセスしてみます。

bootstrapらしい画面が表示されました。

ちょっと構造を見ていきます。

.
├── app.coffee
├── assets
│   ├── css
│   │   ├── bootstrap-responsive.css
│   │   └── bootstrap.css
│   ├── img
│   │   ├── glyphicons-halflings-white.png
│   │   └── glyphicons-halflings.png
│   └── js
│       ├── bootstrap.js
│       ├── jquery.js
│       └── socket_handlers.coffee
├── node_modules/
├── package.json
├── public
│   └── favicon.ico
├── routes
│   └── index.coffee
├── server.js
├── test
│   └── test_sample.coffee
└── views
    ├── index.jade
    └── layout.jade

server.jsがエントリーポイントで、サーバ設定から起動まではapp.coffeeに書かれています。assets内にcss, img, jsがまとまっています。routes(ルータ)と views、test があります。modelやcontrollerはありません。

インストールされたパッケージを見ていきます。

$ npm ls
YOUR_APP_NAME@0.0.1 
├── coffee-script@1.2.0 
├─┬ connect-assets@2.1.9 
├─┬ express@2.5.9 
├─┬ jade@0.22.1 
├─┬ mocha@1.0.1 
├── should@0.6.1 
├─┬ socket.io@0.9.5 
└─┬ stylus@0.25.0 

基本のCoffeeScript、テストフレームワークのshouldとmocha。スタイルシートのstylus、socket.ioが見えます。テンプレートはjadeですね。connect-assets で Rails 3.1 の asset pipeline を実現しています。

app.coffeeを見ていきます。

express = require 'express'
stylus = require 'stylus'
routes = require './routes'
socketio = require 'socket.io'

app = express.createServer()
io = socketio.listen(app)

app.use express.logger {format: ':method :url :status :response-time ms'}
app.use require("connect-assets")()
app.set 'view engine', 'jade'
app.use express.static(__dirname + '/public')

# Routes
app.get '/', routes.index

# Socket.IO
io.sockets.on 'connection', (socket) ->
  socket.emit 'hello',
    hello: 'says server'

port = process.env.PORT or 3000
app.listen port, -> console.log "Listening on port " + port

express, stylus, socket.ioをrequireしています。ルータは routes にあります。テンプレートエンジンにJadeを指定しています。connect-assetsを指定しています。ExpressJSの書き方です。

routes/index.coffeeを見てみます。

exports.index = (req, res) -> res.render 'index'

ExpressJSの書き方です。

bootstrapped-socket-expressはフレームワークというよりは、アプリの雛形的なパッケージです。メジャーなパッケージである、ExpressJS、socket.io、Bootstrap、connect-assets、mochaをCoffeeSciprtで使うために組み合わせたパッケージです。ちょっとしたアプリを、シンプルにCoffeeScriptで始めたい場合にいいかもしれません。

0 件のコメント: