node-sitefile
Version:
Bootstrap Express webserver for misc. resources using Sitefile
56 lines (34 loc) • 1.1 kB
text/coffeescript
path = require 'path'
express = require 'express'
qs = require 'qs'
init_express = ( app, ctx={} ) ->
if not ctx.showStackError?
ctx.showStackError = true
app.set 'showStackError', ctx.showStackError
parse_simple_types = ( query ) ->
for key, value of query
if value in [ 'true', 'false' ]
query[key] = Boolean value
else if not isNaN parseInt value, 10
query[key] = parseInt value, 10
else if typeof value == "object"
parse_simple_types query[key]
module.exports = (ctx={}) ->
app = express()
app.set 'env', ctx.envname
if process.env.SITEFILE_PORT
ctx.site.port = process.env.SITEFILE_PORT
app.set 'port', ctx.site.port
ctx.server = require("http").createServer(app)
init_express( app, ctx )
ctx.static_proto = express.static
ctx.redir = ( ref, p ) ->
ctx.app.all ref, (req, res) ->
res.redirect p
app.set 'query parser', ( query_str ) ->
query = qs.parse query_str
parse_simple_types query
query
app