express + coffeescript + mongoose の練習。
次の様にして coffeescript + mongoose を試してみることができる。
(node, npm, mongodb はインストール済みであるとする。)
$ express foo
$ cd foo
$ edit app.coffee
# ---- app.coffee の内容 は鯉術 ---------
$ edit package.json
# ---- package.json の内容 は鯉術 ---------
$ npm install
# ---- 実行に必要な依存パパッケージが ./node_modules に配置される
# ---- 別のターミナルで mnogodb を起動させておく
# ---- $ mongod --dbpath=./mongo
$ coffee -wc app.coffee
ブラウザで 次の URL にアクセスすると、ターミナルに colsole.log の出力が表示されていく。
http://localhost:3000
http://localhost:3000/add
http://localhost:3000
http://localhost:3000/drop
http://localhost:3000
http://localhost:3000/save?nake=xxx&age=20
http://localhost:3000
========================================
$ cat app.coffee
require 'coffee-script'
express = require 'express'
mongoose = require 'mongoose'
app = module.exports = express.createServer()
app.configure ->
app.set "views", __dirname + "/views"
app.set "view engine", "jade"
app.use express.bodyParser()
app.use express.methodOverride()
app.use express.compiler(
src: __dirname + "/public"
enable: [ "sass" ]
)
app.use app.router
app.use express.static(__dirname + "/public")
app.configure "development", ->
app.use express.errorHandler(
dumpExceptions: true
showStack: true
)
app.configure "production", ->
app.use express.errorHandler()
mongoose.connect 'mongodb://localhost/node'
# schema定義
UserSchema = new mongoose.Schema
name : String
age : Number
User = mongoose.model('User', UserSchema)
app.get "/", (req, res) ->
res.redirect('/find');
# find
app.get "/find", (req, res) ->
res.render "index", title: "Express"
User.find {}, (err,users) -> for user in users
console.log user
# clean
app.get "/drop", (req, res) ->
res.render "index", title: "Express"
User.remove {}, (err) ->
console.log err if err
console.log "dropped!"
# save?name=foo&age=xx
app.get "/save", (req, res) ->
res.render "index", title: "Express"
if req.query["name"]
rec = new User()
rec.name = req.query["name"] if req.query["name"]
rec.age = req.query["age"] if req.query["age"]
rec.save (err) ->
console.log "save! #{rec}" unless err
app.get "/add", (req, res) ->
res.render "index", title: "Express"
rec = new User()
rec.name = "kato"
rec.age = 20
rec.save (err) ->
console.log "add! #{rec}" unless err
app.listen 3000
console.log "Express server listening on port %d", app.address().port
========================================
$ cat package.json
{
"name": "application-name"
, "version": "0.0.1"
, "private": true
, "dependencies": {
"express": "2.5.2"
, "jade": ">= 0.0.1"
, "expresso": ""
, "coffee-script": ""
, "mongoose": ""
}
}
« ピックアップ:WordファイルからEPUB形式の電子書籍を作成, 電子書籍の世界規格EPUBの電子アルバムを作る, etc... | トップページ | enchant.js を追加: express + coffeescript + mongoose の練習 (その2) »
この記事へのコメントは終了しました。
« ピックアップ:WordファイルからEPUB形式の電子書籍を作成, 電子書籍の世界規格EPUBの電子アルバムを作る, etc... | トップページ | enchant.js を追加: express + coffeescript + mongoose の練習 (その2) »
コメント