This repository was archived by the owner on Dec 25, 2018. It is now read-only.
Repository navigation
Expand file tree
/
Copy pathapp.js
More file actions
92 lines (79 loc) · 2.73 KB
/
Copy pathapp.js
File metadata and controls
92 lines (79 loc) · 2.73 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
89
90
91
92
var express = require('express');
var http = require('http');
var path = require('path');
var mongoose = require('mongoose');
var config = require('./config');
var MongoStore = require('connect-mongo')(express);
var mongooseConnection = mongoose.connect(config.db.url, function(err) {
if (err) {
console.log('Could not connect to database', config.db.url, ' due to error', err);
process.exit(1);
}
});
var app = express();
// Express settings
app.disable('x-powered-by');
// Configuration
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.locals.pretty = true;
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(express.cookieParser(config.secret));
app.use(express.session({
secret: config.sessionSecret,
store: new MongoStore({
collection: "sessions",
mongoose_connection: mongooseConnection.connections[0]
}),
cookie: {
path: '/',
httpOnly: true,
maxAge: 1000 * 60 * 60 * 24 * 30
}
}));
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
// populate initial categories
var categories = require('./fixtures/categories.json');
var Category = require('./models/category.js');
Category.on('index',function(err) {
if (err)
console.error("Error populating categories: " + JSON.stringify(err));
else
Category.collection.insert(categories, {ordered: false, upsert:true}, function(err) {
if (err && err.code != 11000 && err.code != 11001)
console.error("Error populating categories: " + JSON.stringify(err));
});
});
// populate locations
var locations = require('./fixtures/municipalities.json');
var Location = require('./models/location.js');
Location.on('index',function(err) {
if (err)
console.error("Error populating locations: " + JSON.stringify(err));
else
Location.collection.insert(locations, {ordered: false, upsert:true}, function(err) {
if (err && err.code != 11000 && err.code != 11001)
console.error("Error populating locations: " + JSON.stringify(err));
});
});
// init MVC
require('./helpers')(app);
require('./routes')(app);
// Start server if not invoked by require('./app')
if (require.main === module) {
http.createServer(app).listen(config.port, config.address, function() {
console.log("Express server listening on %s:%d in %s mode", config.address, config.port, app.settings.env);
});
} else {
// Export app if invoked by require('./app')
module.exports = app;
}