UNPKG

pages

Version:

AngularJS / Node.js sidekick.

69 lines (42 loc) 1.81 kB
This is a standard application to use for all Pages projects. It understands the concept of _Server Modules_, and requires _Node.js Modules_ accordingly. express = require 'express' uuid = require 'node-uuid' connect = require 'connect' ejs = require 'ejs' log = require './lib/log' serverModules = require './lib/server_modules.litcoffee' app = express() app.use express.bodyParser() run = (cb) -> configureServer () -> serverModules.serverStarting app, () -> listen () -> serverModules.serverStarted() cb() configureServer = (cb) -> app.configure () -> app.engine 'html', ejs.renderFile app.set 'view options', layout: false app.use express.cookieParser() Session secrets are generated as time-based UUIDs. secret = uuid.v1() app.use express.session( secret: secret ) app.use express.methodOverride() app.use express.favicon() app.use connect.logger stream: log.stream allowCrossDomain = (req, res, next) -> res.header 'Access-Control-Allow-Origin', '*' res.header 'Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS' res.header 'Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With' Intercept OPTIONS method. if 'OPTIONS' is req.method then res.send 200 else next() app.use allowCrossDomain app.use app.router app.use express.static "#{process.cwd()}/_app" app.get '/', (req, res) -> res.render "#{process.cwd()}/_app/index.html" cb app listen = (cb) -> app.listen process.env.PORT, () -> cb() ## Public API ## publicFns = run: run module.exports = publicFns