app/templates/index.coffee
express = require 'express'
mongoose = require 'mongoose'
require "express-resource"
config = require './config'
Security = require "./modules/Security"
Log = require "./modules/Log"
resources = require "./modules/resources"
User = require "./modules/models/User"
mongoose.connect config.mongoUrl, (error) ->
Log.error error if error
Log.info "Mongoose connected to #{config.mongoUrl}." unless error
app = express()
app.set "view engine", "jade"
app.set "views", __dirname + "/views"
app.use express.bodyParser()
app.use express.cookieParser config.sessionSecret
app.use express.cookieSession()
app.use "/", express.static __dirname + "/build/lib"
app.use "/img", express.static __dirname + "/build/lib"
app.use "/fonts", express.static __dirname + "/build/lib"
app.use "/", express.static __dirname + "/build"
app.use "/", express.static __dirname + "/public/images"
Security.for app
app.get "/", (req, res) ->
if req.isAuthenticated()
res.redirect "/app"
else
res.render "landing"
app.get "/app", (req, res) ->
if req.isAuthenticated()
User.touch req.user._id, req.ip, (error) ->
Log.error "Can't touch user #{req.user._id}." if error
res.render "app"
else
res.redirect "/"
for name, implementation of resources
Security.protect "/#{name}"
app.resource name, implementation
app.listen config.port, ->
Log.info "Listening on #{config.port}..."