前日のエントリーでは、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 件のコメント:
コメントを投稿