view 1__Development/6__Website/POPExpressServer/POPServer.js @ 5:e73fbbcb5fd2

Persisting basic graph works, starting to add persist of view hierarchy too
author Sean Halle <seanhalle@yahoo.com>
date Sun, 03 Aug 2014 23:38:15 -0700
parents
children
line source
1 var express = require('express');
2 var http = require('http');
3 var path = require('path');
4 var favicon = require('static-favicon');
5 var logger = require('morgan');
6 var cookieParser = require('cookie-parser');
7 var bodyParser = require('body-parser');
9 //The express package returned a raw function to the express variable,
10 // so it can be invoked directly, which runs the express code:
11 var server = express();
13 // view engine setup -- inside the handlers, the "render" function takes
14 // the name of one of the views set up here:
15 server.set('views', path.join(__dirname, 'views'));
16 server.set('view engine', 'jade');
18 server.use(favicon());
19 server.use(logger('dev'));
20 server.use(bodyParser.json());
21 server.use(bodyParser.urlencoded());
22 server.use(cookieParser());
23 server.use(express.static(path.join(__dirname, 'public')));
24 server.use(server.router);
26 //Load in functions that will be used to handle particular URLs
27 //In routeFns.js, have "exports.<fn_name>", and after the require,
28 // that fn is accessed as "routes.<fn_name>"
29 var routes = require('./routes/routeHdlrs');
30 var users = require('./routes/user');
32 //Here is where URLs are associated to the handler functions (loaded above)
33 server.get('/', routes.index); //associates base URL to routes.index fn
34 server.get('/users', users.list);
35 server.get('/foobar', routes.foobar);
36 server.get('/savejson', routes.saveJSON);
38 /// catch 404 and forwarding to error handler
39 server.use(function(req, res, next) {
40 var err = new Error('Not Found');
41 err.status = 404;
42 next(err);
43 });
45 /// error handlers
47 // development error handler
48 // will print stacktrace
49 if (server.get('env') === 'development') {
50 server.use(function(err, req, res, next) {
51 res.render('error', {
52 message: err.message,
53 error: err
54 });
55 });
56 }
58 // production error handler
59 // no stacktraces leaked to user
60 server.use(function(err, req, res, next) {
61 res.render('error', {
62 message: err.message,
63 error: {}
64 });
65 });
68 //in case this code is imported into a higher level project:
69 module.exports = server;
71 //start the server listening and handling requests:
72 server.listen(3000, function(){console.log("server listening on port 3000");});