前日のエントリーでは、CoffeeScript, Express, Jade, Mochaでコーディングしました。テンプレートにはJadeを使用していました。折角なので、CoffeeKup で書きなおしてみます。コーヒーで統一です。
CoffeeScriptで統一できる以外、特にアーキテクチャが良いわけでは有りません。急速成長中のNode.jsの世界では、まだまだ鉄板と言えるようなフレームワークがないのが現状だと感じています。
CoffeeKupインストール
$ npm install coffeekup
views/layout.coffee
doctype 5 html -> head -> meta charset: 'utf-8' title "#{@title}" link rel: 'stylesheet', href: 'http://twitter.github.com/bootstrap/1.4.0/bootstrap.min.css' style ''' #content {padding-top: 60px} ''' body -> div '.topbar-wrapper', -> div '.topbar', -> div '.topbar-inner', -> div '.container', -> h3 -> a href: '/', -> @title ul '.nav', -> li -> a href: 'post/new', -> 'あたらしい投稿' div '#content.container', -> @body
views/index.coffee
for post in @posts h1 -> a href:"/post/#{post.id}", -> post.title p '.content', -> post.body
app.coffeeにテンプレートを登録。
app.coffee
express = require("express") routes = require("./routes") mongoose = require('mongoose') app = module.exports = express.createServer() app.configure -> # .coffee拡張地をCoffeeKupとして登録 app.register ".coffee", require 'coffeekup' app.set "views", __dirname + "/views" # coffeeをビューエンジンに指定 app.set "view engine", "coffee" app.use express.bodyParser() app.use express.methodOverride() app.use app.router app.use express.static(__dirname + "/public") app.configure "development", -> mongoose.connect 'mongodb://localhost/coffeepress-dev' app.use express.errorHandler( dumpExceptions: true showStack: true ) app.configure "production", -> mongoose.connect 'mongodb://localhost/coffeepress-prod' app.use express.errorHandler() app.get "/", routes.index app.get "/post/new", routes.newPost app.post "/post/new", routes.addPost app.get "/post/:id", routes.viewPost app.listen 3000 console.log "Express server listening on port %d in %s mode", app.address().port, app.settings.env
0 件のコメント:
コメントを投稿