-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
73 lines (52 loc) · 1.75 KB
/
server.js
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
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./server/routes')
, models = require('./server/models')
, http = require('http')
, nconf = require('nconf')
, path = require('path')
, mongoose = require('mongoose');
var app = express();
var angularBridge = new (require('angular-bridge'))(app, {
urlPrefix : '/api/'
});
// all environments
app.set('views', __dirname + '/server/views');
app.set('view engine', 'hjs');
//app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);
app.use(require('less-middleware')({ src: __dirname + '/client' }));
app.use(express.static(path.join(__dirname, 'client')));
// development only
app.configure('development', function() {
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
console.log('In development mode');
});
app.configure('production', function() {
app.use(express.errorHandler());
console.log('Production mode configured.');
});
nconf.file('defaults', 'defaults.json')
.file('userconfig', 'config.json')
.env()
.argv();
mongoose.connect('mongodb://' + nconf.get('database:hostname') + "/" + nconf.get('database:name'));
angularBridge.addResource('projects', models.Project);
app.set('configuration', nconf);
app.set('port', nconf.get('listen') || 3000);
app.get('/', routes.index);
app.use(routes.index);
// for grunt, so we can run the express server
module.exports = app;
if (require.main === module) {
http.createServer(app).listen(app.get('port'), function() {
console.log('Express server listening on port ' + app.get('port'));
});
}