1
-
2
1
/**
3
2
* Module dependencies.
4
3
*/
5
4
6
5
var express = require ( 'express' )
7
6
, routes = require ( './routes' )
8
7
, user = require ( './routes/user' )
8
+ , hike = require ( './routes/hike' )
9
9
, http = require ( 'http' )
10
10
, path = require ( 'path' )
11
- , hike = require ( './routes/hike' ) ;
11
+ , mysql = require ( 'mysql' )
12
+ , async = require ( 'async' ) ;
12
13
13
14
var app = express ( ) ;
14
15
15
- // all environments
16
- app . set ( 'port' , process . env . PORT || 3000 ) ;
17
- app . set ( 'views' , __dirname + '/views' ) ;
18
- app . set ( 'view engine' , 'jade' ) ;
19
- app . use ( express . favicon ( ) ) ;
20
- app . use ( express . logger ( 'dev' ) ) ;
21
- app . use ( express . bodyParser ( ) ) ;
22
- app . use ( express . methodOverride ( ) ) ;
23
- app . use ( app . router ) ;
24
- // app.use(express.static(path.join(__dirname, 'public')));
25
-
26
- // development only
27
- if ( 'development' == app . get ( 'env' ) ) {
28
- app . use ( express . errorHandler ( ) ) ;
29
- }
16
+ app . configure ( function ( ) {
17
+ app . set ( 'port' , process . env . PORT || 3000 ) ;
18
+ app . set ( 'views' , __dirname + '/views' ) ;
19
+ app . set ( 'view engine' , 'jade' ) ;
20
+ app . use ( express . favicon ( ) ) ;
21
+ app . use ( express . logger ( 'dev' ) ) ;
22
+ app . use ( express . bodyParser ( ) ) ;
23
+ app . use ( express . methodOverride ( ) ) ;
24
+ app . use ( app . router ) ;
25
+ // app.use(express.static(path.join(__dirname, 'public')));
26
+ } ) ;
30
27
31
- app . get ( '/' , routes . index ) ;
32
- app . get ( '/users' , user . list ) ;
33
- app . get ( '/hikes' , hike . index ) ;
34
- app . post ( '/add_hike' , hike . add_hike ) ;
28
+ app . configure ( 'development' , function ( ) {
29
+ console . log ( 'Using development settings.' ) ;
30
+ app . set ( 'connection' , mysql . createConnection ( {
31
+ host : '' ,
32
+ user : '' ,
33
+ port : '' ,
34
+ password : '' } ) ) ;
35
+ app . use ( express . errorHandler ( ) ) ;
36
+ } ) ;
35
37
36
- http . createServer ( app ) . listen ( app . get ( 'port' ) , function ( ) {
37
- console . log ( 'Express server listening on port ' + app . get ( 'port' ) ) ;
38
+ app . configure ( 'production' , function ( ) {
39
+ console . log ( 'Using production settings.' ) ;
40
+ app . set ( 'connection' , mysql . createConnection ( {
41
+ host : process . env . RDS_HOSTNAME ,
42
+ user : process . env . RDS_USERNAME ,
43
+ password : process . env . RDS_PASSWORD ,
44
+ port : process . env . RDS_PORT } ) ) ;
38
45
} ) ;
46
+
47
+ function init ( ) {
48
+ app . get ( '/' , routes . index ) ;
49
+ app . get ( '/users' , user . list ) ;
50
+ app . get ( '/hikes' , hike . index ) ;
51
+ app . post ( '/add_hike' , hike . add_hike ) ;
52
+
53
+ http . createServer ( app ) . listen ( app . get ( 'port' ) , function ( ) {
54
+ console . log ( "Express server listening on port " + app . get ( 'port' ) ) ;
55
+ } ) ;
56
+ }
57
+
58
+ var client = app . get ( 'connection' ) ;
59
+ async . series ( [
60
+ function connect ( callback ) {
61
+ client . connect ( callback ) ;
62
+ } ,
63
+ function clear ( callback ) {
64
+ client . query ( 'DROP DATABASE IF EXISTS mynode_db' , callback ) ;
65
+ } ,
66
+ function create_db ( callback ) {
67
+ client . query ( 'CREATE DATABASE mynode_db' , callback ) ;
68
+ } ,
69
+ function use_db ( callback ) {
70
+ client . query ( 'USE mynode_db' , callback ) ;
71
+ } ,
72
+ function create_table ( callback ) {
73
+ client . query ( 'CREATE TABLE HIKES (' +
74
+ 'ID VARCHAR(40), ' +
75
+ 'HIKE_DATE DATE, ' +
76
+ 'NAME VARCHAR(40), ' +
77
+ 'DISTANCE VARCHAR(40), ' +
78
+ 'LOCATION VARCHAR(40), ' +
79
+ 'WEATHER VARCHAR(40), ' +
80
+ 'PRIMARY KEY(ID))' , callback ) ;
81
+ } ,
82
+ function insert_default ( callback ) {
83
+ var hike = { HIKE_DATE : new Date ( ) , NAME : 'Hazard Stevens' ,
84
+ LOCATION : 'Mt Rainier' , DISTANCE : '4,027m vertical' , WEATHER :'Bad' } ;
85
+ client . query ( 'INSERT INTO HIKES set ?' , hike , callback ) ;
86
+ }
87
+ ] , function ( err , results ) {
88
+ if ( err ) {
89
+ console . log ( 'Exception initializing database.' ) ;
90
+ throw err ;
91
+ } else {
92
+ console . log ( 'Database initialization complete.' ) ;
93
+ init ( ) ;
94
+ }
95
+ } ) ;
0 commit comments