diff options
| -rw-r--r-- | app.js | 60 | ||||
| -rwxr-xr-x | bin/www | 9 | ||||
| -rw-r--r-- | package.json | 17 | ||||
| -rw-r--r-- | public/stylesheets/style.css | 8 | ||||
| -rw-r--r-- | routes/index.js | 9 | ||||
| -rw-r--r-- | routes/users.js | 9 | ||||
| -rw-r--r-- | views/error.ejs | 3 | ||||
| -rw-r--r-- | views/index.ejs | 11 | 
8 files changed, 126 insertions, 0 deletions
| @@ -0,0 +1,60 @@ +var express = require('express'); +var path = require('path'); +var favicon = require('serve-favicon'); +var logger = require('morgan'); +var cookieParser = require('cookie-parser'); +var bodyParser = require('body-parser'); + +var routes = require('./routes/index'); +var users = require('./routes/users'); + +var app = express(); + +// view engine setup +app.set('views', path.join(__dirname, 'views')); +app.set('view engine', 'ejs'); + +// uncomment after placing your favicon in /public +//app.use(favicon(__dirname + '/public/favicon.ico')); +app.use(logger('dev')); +app.use(bodyParser.json()); +app.use(bodyParser.urlencoded({ extended: false })); +app.use(cookieParser()); +app.use(express.static(path.join(__dirname, 'public'))); + +app.use('/', routes); +app.use('/users', users); + +// catch 404 and forward 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.status(err.status || 500); +        res.render('error', { +            message: err.message, +            error: err +        }); +    }); +} + +// production error handler +// no stacktraces leaked to user +app.use(function(err, req, res, next) { +    res.status(err.status || 500); +    res.render('error', { +        message: err.message, +        error: {} +    }); +}); + + +module.exports = app; @@ -0,0 +1,9 @@ +#!/usr/bin/env node +var debug = require('debug')('sipping-point'); +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..63d613b --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ +  "name": "sipping-point", +  "version": "0.0.1", +  "private": true, +  "scripts": { +    "start": "node ./bin/www" +  }, +  "dependencies": { +    "express": "~4.9.0", +    "body-parser": "~1.8.1", +    "cookie-parser": "~1.3.3", +    "morgan": "~1.3.0", +    "serve-favicon": "~2.1.3", +    "debug": "~2.0.0", +    "ejs": "~0.8.5" +  } +}
\ No newline at end of file diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css new file mode 100644 index 0000000..30e047d --- /dev/null +++ b/public/stylesheets/style.css @@ -0,0 +1,8 @@ +body { +  padding: 50px; +  font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; +} + +a { +  color: #00B7FF; +}
\ No newline at end of file diff --git a/routes/index.js b/routes/index.js new file mode 100644 index 0000000..896c948 --- /dev/null +++ b/routes/index.js @@ -0,0 +1,9 @@ +var express = require('express'); +var router = express.Router(); + +/* GET home page. */ +router.get('/', function(req, res) { +  res.render('index', { title: 'Express' }); +}); + +module.exports = router; diff --git a/routes/users.js b/routes/users.js new file mode 100644 index 0000000..c00d7de --- /dev/null +++ b/routes/users.js @@ -0,0 +1,9 @@ +var express = require('express'); +var router = express.Router(); + +/* GET users listing. */ +router.get('/', function(req, res) { +  res.send('respond with a resource'); +}); + +module.exports = router; diff --git a/views/error.ejs b/views/error.ejs new file mode 100644 index 0000000..7cf94ed --- /dev/null +++ b/views/error.ejs @@ -0,0 +1,3 @@ +<h1><%= message %></h1> +<h2><%= error.status %></h2> +<pre><%= error.stack %></pre> diff --git a/views/index.ejs b/views/index.ejs new file mode 100644 index 0000000..7b7a1d6 --- /dev/null +++ b/views/index.ejs @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html> +  <head> +    <title><%= title %></title> +    <link rel='stylesheet' href='/stylesheets/style.css' /> +  </head> +  <body> +    <h1><%= title %></h1> +    <p>Welcome to <%= title %></p> +  </body> +</html> | 
