- node.js
- mongodb
npm install
node web
or
coffee app
config/application.json
- 静的ファイルの配信にstを使っているので静的配信も早め
- requireするのに逐一パス書かなくてもよい
- ルーターは1ファイルに見やすくまとめる
- production以外ではjadeをminifyしない
- productionで起動すると全部minifyされる
- CPUのスレッド数に応じてfork、マルチプロセスで起動
- 落ちたプロセスは自動で再起動する
- 独自のロガーを使用
- Fallbackを組み込み(404)
実装されてるサンプル
- dbをマイグレーション、dbから文書を表示する
- sessionマネージャは組み込んであるが認証機構は組み込んでない
- passportをご利用ください
- assets
- css: cssかstylを書く、npm install lessすればlessも書ける
- js: jsかcoffeeを書く
- config
- migration: DBにインポートする初期データとかを書く
- routes: ルートの定義
- events
- routesから呼ばれるメソッドの実装
- 文字数が揃えたかっただけ、コントローラと呼んでも構わない
- models
- mongooseのスキーマ定義
- helper
- 各所でよく呼ばれるメソッド
- public
- webルートだよ!
- assetsはここにビルドされる、二回目以降はstが配信する
- 変更があるとハッシュが変わるのでちゃんとリロードされます
- views
- jade置いてください
touch events/SomeEvent.coffee
vim events/SomeEvent.coffee
exports.SomeEvent = (app) ->
hoge: (req, res) ->
res.end 'Hello, World!!'
vim config/routes.coffee
SomeEvent = app.settings.events.SomeEvent app
app.get '/hoge', SomeEvent.hoge
touch models/SomeModel.coffee
vim models/SomeModel.coffee
mongoose = require 'mongoose'
Schema = mongoose.Schema
ObjectId = Schema.Types.ObjectId
Mixed = Schema.Types.Mixed
PostSchema = new Schema
some: { type: String }
module.exports =
Some: mongoose.model 'somes', SomeSchema
SomeSchema: SomeSchema
vim events/SomeEvent.coffee
exports.SomeEvent = (app) ->
{Some} = app.settings.models
hoge: (req, res) ->
Some.find {}, {}, {}, (err, somes) ->
res.end 'Hello, World!!', somes: somes
!=js('ファイル名')
!=css('ファイル名')
なんかわかんないことあったらgeta6に聞く