하드 파티션이 날아가서 새로 셋업하고
작업하던 소스를 받아와서 아무생각 없이 npm install 했더니
express 3.0으로 되어있더라.
기존의 소스는
express = require 'express'
gzippo = require 'gzippo'
fs = require 'fs'
http = require 'http'
app = express.createServer()
path = require 'path'
tmpl =
compile: (source, options)->
(locals)->
# 여기에 템플릿 뽁찡
source
port = process.env.VMC_APP_PORT || 3000
app.configure ->
app.set 'views', "#{__dirname}/../public"
app.use app.router
app.set 'view options', layout: false
app.set 'view engine', 'html'
app.register '.html', tmpl
app.use gzippo.staticGzip "#{__dirname}/../public"
app.get '/', (req,res) ->
res.render "./html/index.html"
app.listen port, ->
console.log "Listening on #{port}"
이런 식으로 썼다면
express = require 'express'
fs = require 'fs'
http = require 'http'
app = express()
tmpl = (path, options, fn) ->
fs.readFile path, 'utf8', (err,str) ->
# 오류처리하고 템플릿 뽁찡
if err then fn err else fn null, str.toString()
app.configure ->
app.set 'port', process.env.VMC_APP_PORT || 3000
app.set 'views', "#{__dirname}/../public"
app.use app.router
app.set 'view options', layout: false
app.set 'view engine', 'html'
app.engine '.html', tmpl
app.use require('connect').compress()
app.use express.static("#{__dirname}/../public")
app.get '/', (req,res) ->
res.render "./html/index.html"
http.createServer(app).listen app.get('port'), ->
console.log "Listening on #{app.get('port')}"
이런 패턴으로 바뀌었다.
정리해보면
작업하던 소스를 받아와서 아무생각 없이 npm install 했더니
express 3.0으로 되어있더라.
기존의 소스는
express = require 'express'
gzippo = require 'gzippo'
fs = require 'fs'
http = require 'http'
app = express.createServer()
path = require 'path'
tmpl =
compile: (source, options)->
(locals)->
# 여기에 템플릿 뽁찡
source
port = process.env.VMC_APP_PORT || 3000
app.configure ->
app.set 'views', "#{__dirname}/../public"
app.use app.router
app.set 'view options', layout: false
app.set 'view engine', 'html'
app.register '.html', tmpl
app.use gzippo.staticGzip "#{__dirname}/../public"
app.get '/', (req,res) ->
res.render "./html/index.html"
app.listen port, ->
console.log "Listening on #{port}"
이런 식으로 썼다면
express = require 'express'
fs = require 'fs'
http = require 'http'
app = express()
tmpl = (path, options, fn) ->
fs.readFile path, 'utf8', (err,str) ->
# 오류처리하고 템플릿 뽁찡
if err then fn err else fn null, str.toString()
app.configure ->
app.set 'port', process.env.VMC_APP_PORT || 3000
app.set 'views', "#{__dirname}/../public"
app.use app.router
app.set 'view options', layout: false
app.set 'view engine', 'html'
app.engine '.html', tmpl
app.use require('connect').compress()
app.use express.static("#{__dirname}/../public")
app.get '/', (req,res) ->
res.render "./html/index.html"
http.createServer(app).listen app.get('port'), ->
console.log "Listening on #{app.get('port')}"
이런 패턴으로 바뀌었다.
정리해보면
- express.createServer() 가 deprecated 되었다. 그냥 express() 사용
- 커스텀 템플릿 엔진을 사용하기 위해 register 대신 engine 을 사용
- 압축 전송을 위해 gzippo 를 썼는데 connect 버전업과 함께 그냥 connect.compress() 사용
- 템플릿 인자가 바뀜. 전엔 해당 파일의 문자값이 넘어왔는데 지금은 path를 반환.
- app.get 으로 key, value 형태로 값을 읽어올 수 있음.
자세한 내용은 아래 링크를 참조
댓글
댓글 쓰기