diff --git a/app.js b/app.js new file mode 100644 index 0000000..0c7d237 --- /dev/null +++ b/app.js @@ -0,0 +1,53 @@ +var express = require('express'); +var http = require('http'); +var path = require('path'); +var favicon = require('static-favicon'); +var logger = require('morgan'); +var cookieParser = require('cookie-parser'); +var bodyParser = require('body-parser'); + +var routes = require('./routes'); +var users = require('./routes/user'); + +var app = express(); + +app.use(favicon()); +app.use(logger('dev')); +app.use(bodyParser.json()); +app.use(bodyParser.urlencoded()); +app.use(cookieParser()); +app.use(app.router); + +app.get('/', routes.index); +app.get('/users', users.list); + +/// catch 404 and forwarding to error handler +app.use(function(req, res, next) { + var err = new Error('Not Found'); + err.status = 404; + next(err); +}); + +/// error handlers + +// development error handler +// will print stacktrace +if (app.get('env') === 'development') { + app.use(function(err, req, res, next) { + res.render('error', { + message: err.message, + error: err + }); + }); +} + +// production error handler +// no stacktraces leaked to user +app.use(function(err, req, res, next) { + res.render('error', { + message: err.message, + error: {} + }); +}); + +module.exports = app; diff --git a/bin/www b/bin/www new file mode 100755 index 0000000..3cfbf77 --- /dev/null +++ b/bin/www @@ -0,0 +1,9 @@ +#!/usr/bin/env node +var debug = require('debug')('my-application'); +var app = require('../app'); + +app.set('port', process.env.PORT || 3000); + +var server = app.listen(app.get('port'), function() { + debug('Express server listening on port ' + server.address().port); +}); diff --git a/package.json b/package.json new file mode 100644 index 0000000..79dadb3 --- /dev/null +++ b/package.json @@ -0,0 +1,15 @@ +{ + "name": "Lunch-o", + "version": "0.1.0", + "private": true, + "scripts": { + "start": "node ./bin/www" + }, + "dependencies": { + "express": "~3.4.8", + "static-favicon": "~1.0.0", + "morgan": "~1.0.0", + "body-parser": "~1.0.0", + "debug": "~0.7.4" + } +} diff --git a/routes/index.js b/routes/index.js new file mode 100644 index 0000000..4a543f2 --- /dev/null +++ b/routes/index.js @@ -0,0 +1,4 @@ +/* GET home page. */ +exports.index = function(req, res){ + res.render('index', { title: 'Express' }); +}; diff --git a/routes/user.js b/routes/user.js new file mode 100644 index 0000000..3b8bd2c --- /dev/null +++ b/routes/user.js @@ -0,0 +1,4 @@ +/* GET users listing. */ +exports.list = function(req, res){ + res.send('respond with a resource'); +};