-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.coffee
More file actions
88 lines (71 loc) · 2.8 KB
/
server.coffee
File metadata and controls
88 lines (71 loc) · 2.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
###
Module dependencies.
###
express = require('express')
sys = require("sys")
mongoose = require("mongoose")
io = require("socket.io")
redis = require('redis')
RedisStore = require('connect-redis')(express)
app = module.exports = express.createServer()
app.sessionStore = new RedisStore {port: 6379}
app.settings.db = JSON.parse(require('fs').readFileSync("#{__dirname}/app/conf/database.json", "utf-8"))[app.settings.env]
global.db = mongoose.connect "mongodb://localhost/meatme"
String.prototype.endsWith = (str) ->
this.substring(this.length - str.length) is str
app.configure ->
#app.use(express.staticProvider(__dirname + '/public'));
app.use express.logger()
app.use express.static(__dirname + '/public')
app.set "views", "#{__dirname}/app/views"
app.set "view engine", "ejs"
app.use express.bodyParser()
app.use express.cookieParser()
app.use express.session({ secret: 'keyboard cat', store: app.sessionStore })
app.use express.methodOverride()
app.use app.router
collections = require('./app/schema/collections.js').registerCollections mongoose
app.configure "development", ->
app.use express.errorHandler({ dumpExceptions: true, showStack: true })
# ******************************************************** dummy session user
app.use (req, res, next) ->
User = mongoose.model "User"
User.findOne {email: '*******@gmail.com'}, (err, user) ->
if user?
console.log "Added user #{user.email} to session"
req.session.user = user
else
console.error "Can't find dummy user. #{err}"
next()
app.configure "staging", ->
app.use express.errorHandler({ dumpExceptions: true, showStack: true })
app.configure "test", ->
app.use express.errorHandler({ dumpExceptions: true, showStack: true })
app.settings.quiet = true
app.configure "production", ->
app.use express.errorHandler()
app.settings.quiet = true
# Helpers
app.dynamicHelpers
# express-messages is a dynamicHelper that
# renders the flash messages to HTML for you
# $ npm install express-messages
messages: require "express-messages"
# Default empty list for variable scriptSources
# app.set('view options', {locals: {scriptSources: []}});
app.helpers
formatDate: require("./app/modules/dateFormat.js"),
scriptSources: (req, res) -> return [],
renderScriptTags: (scriptSources) ->
res = ''
if scriptSources?
for s in scriptSources
res += "<script src='/javascripts#{scriptSources[s]}' type='text/javascript'></script>\n"
return res
routes = require('./app/conf/routes.js').registerRoutes app, mongoose
# Only listen on $ node app.js
if not module.parent?
app.listen 3000
console.log "Express server listening on port %d", app.address().port
app.io = io.listen app
socketHandler = require('./app/socketio/handler.js').registerSocketHandler app, mongoose, redis