Mercurial > cgi-bin > hgwebdir.cgi > POP > oldRepo
comparison 1__Development/6__Website/POPExpressServer/POPServer.js @ 7:20a1407463a0
sort of working with view sets -- does restore, (not tested) have to chg Display to handle view sets
| author | Sean Halle <seanhalle@yahoo.com> |
|---|---|
| date | Thu, 07 Aug 2014 00:10:50 -0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:febc1ff52b47 |
|---|---|
| 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'); | |
| 8 | |
| 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(); | |
| 12 | |
| 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'); | |
| 17 | |
| 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); | |
| 25 | |
| 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'); | |
| 31 | |
| 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); | |
| 37 | |
| 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 }); | |
| 44 | |
| 45 /// error handlers | |
| 46 | |
| 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 } | |
| 57 | |
| 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 }); | |
| 66 | |
| 67 | |
| 68 //in case this code is imported into a higher level project: | |
| 69 module.exports = server; | |
| 70 | |
| 71 //start the server listening and handling requests: | |
| 72 server.listen(3000, function(){console.log("server listening on port 3000");}); |
