From c1b956127563159154d5fea7434ac9beb20ee842 Mon Sep 17 00:00:00 2001 From: pepper Date: Fri, 28 Nov 2014 01:34:32 -0800 Subject: first commit --- .bowerrc | 4 ++ .gitignore | 3 + Gruntfile.js | 79 +++++++++++++++++++++++ app.js | 63 ++++++++++++++++++ bin/www | 9 +++ bower.json | 9 +++ package.json | 25 +++++++ public/css/.style.css.un~ | Bin 0 -> 13527 bytes public/css/style.css | 27 ++++++++ public/css/unsemantic-grid-responsive-tablet.css | 1 + routes/.index.js.un~ | Bin 0 -> 3794 bytes routes/index.js | 15 +++++ routes/user.js | 9 +++ views/.header.ejs.un~ | Bin 0 -> 4391 bytes views/.index.ejs.un~ | Bin 0 -> 34973 bytes views/css_test.ejs | 28 ++++++++ views/error.ejs | 7 ++ views/footer.ejs | 2 + views/header.ejs | 12 ++++ views/index.ejs | 28 ++++++++ 20 files changed, 321 insertions(+) create mode 100644 .bowerrc create mode 100644 .gitignore create mode 100644 Gruntfile.js create mode 100644 app.js create mode 100644 bin/www create mode 100644 bower.json create mode 100644 package.json create mode 100644 public/css/.style.css.un~ create mode 100644 public/css/style.css create mode 120000 public/css/unsemantic-grid-responsive-tablet.css create mode 100644 routes/.index.js.un~ create mode 100644 routes/index.js create mode 100644 routes/user.js create mode 100644 views/.header.ejs.un~ create mode 100644 views/.index.ejs.un~ create mode 100644 views/css_test.ejs create mode 100644 views/error.ejs create mode 100644 views/footer.ejs create mode 100644 views/header.ejs create mode 100644 views/index.ejs diff --git a/.bowerrc b/.bowerrc new file mode 100644 index 0000000..2f00fdf --- /dev/null +++ b/.bowerrc @@ -0,0 +1,4 @@ +{ + "directory": "public/components", + "json": "bower.json" +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..80fcba8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules/ +public/components +.sass-cache \ No newline at end of file diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 0000000..646900e --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,79 @@ +'use strict'; + +var request = require('request'); + +module.exports = function (grunt) { + // show elapsed time at the end + require('time-grunt')(grunt); + // load all grunt tasks + require('load-grunt-tasks')(grunt); + + var reloadPort = 35729, files; + + grunt.initConfig({ + pkg: grunt.file.readJSON('package.json'), + develop: { + server: { + file: 'bin/www' + } + }, + watch: { + options: { + nospawn: true, + livereload: reloadPort + }, + server: { + files: [ + 'bin/www', + 'app.js', + 'routes/*.js' + ], + tasks: ['develop', 'delayed-livereload'] + }, + js: { + files: ['public/js/*.js'], + options: { + livereload: reloadPort + } + }, + css: { + files: [ + 'public/css/*.css' + ], + options: { + livereload: reloadPort + } + }, + views: { + files: ['views/*.ejs'], + options: { + livereload: reloadPort + } + } + } + }); + + grunt.config.requires('watch.server.files'); + files = grunt.config('watch.server.files'); + files = grunt.file.expand(files); + + grunt.registerTask('delayed-livereload', 'Live reload after the node server has restarted.', function () { + var done = this.async(); + setTimeout(function () { + request.get('http://localhost:' + reloadPort + '/changed?files=' + files.join(','), function (err, res) { + var reloaded = !err && res.statusCode === 200; + if (reloaded) { + grunt.log.ok('Delayed live reload successful.'); + } else { + grunt.log.error('Unable to make a delayed live reload.'); + } + done(reloaded); + }); + }, 500); + }); + + grunt.registerTask('default', [ + 'develop', + 'watch' + ]); +}; diff --git a/app.js b/app.js new file mode 100644 index 0000000..b6bf34f --- /dev/null +++ b/app.js @@ -0,0 +1,63 @@ +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/user'); + +var app = express(); + +// view engine setup +app.set('views', path.join(__dirname, 'views')); +app.set('view engine', 'ejs'); + +// app.use(favicon(__dirname + '/public/img/favicon.ico')); +app.use(logger('dev')); +app.use(bodyParser.json()); +app.use(bodyParser.urlencoded({ + extended: true +})); +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, + title: 'error' + }); + }); +} + +// 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: {}, + title: 'error' + }); +}); + + +module.exports = app; diff --git a/bin/www b/bin/www new file mode 100644 index 0000000..d7f4447 --- /dev/null +++ b/bin/www @@ -0,0 +1,9 @@ +#!/usr/bin/env node +var debug = require('debug')('expressapp'); +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/bower.json b/bower.json new file mode 100644 index 0000000..7c61521 --- /dev/null +++ b/bower.json @@ -0,0 +1,9 @@ +{ + "name": "yeoman3", + "version": "0.0.1", + "ignore": [ + "**/.*", + "node_modules", + "components" + ] +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..0a2e575 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "yeoman3", + "version": "0.0.1", + "private": true, + "scripts": { + "start": "node ./bin/www" + }, + "dependencies": { + "express": "~4.4.5", + "serve-favicon": "~2.0.1", + "morgan": "~1.1.1", + "cookie-parser": "~1.3.2", + "body-parser": "~1.4.3", + "debug": "~1.0.2", + "ejs": "~1.0.0" + }, + "devDependencies": { + "grunt": "~0.4.5", + "grunt-develop": "~0.4.0", + "grunt-contrib-watch": "~0.6.1", + "request": "~2.36.0", + "time-grunt": "~0.3.2", + "load-grunt-tasks": "~0.6.0" + } +} diff --git a/public/css/.style.css.un~ b/public/css/.style.css.un~ new file mode 100644 index 0000000..58568dd Binary files /dev/null and b/public/css/.style.css.un~ differ diff --git a/public/css/style.css b/public/css/style.css new file mode 100644 index 0000000..1164000 --- /dev/null +++ b/public/css/style.css @@ -0,0 +1,27 @@ +.blue{ + background: blue; +} +.green{ + background: green; +} +.red{ + background: red; +} +.tall{ + height: 100%; + padding-bottom:100%; + margin-bottom: -100%; +} +.small-border{ + border: 1px solid black; + +} +.no-padding{ + padding-top: 0px; +padding-right: 0px; +padding-bottom: 0px; +padding-left: 0px; +} +.no-overflow{ +overflow:hidden; +} diff --git a/public/css/unsemantic-grid-responsive-tablet.css b/public/css/unsemantic-grid-responsive-tablet.css new file mode 120000 index 0000000..02634c0 --- /dev/null +++ b/public/css/unsemantic-grid-responsive-tablet.css @@ -0,0 +1 @@ +../components/unsemantic/assets/stylesheets/unsemantic-grid-responsive-tablet.css \ No newline at end of file diff --git a/routes/.index.js.un~ b/routes/.index.js.un~ new file mode 100644 index 0000000..a69cf67 Binary files /dev/null and b/routes/.index.js.un~ differ diff --git a/routes/index.js b/routes/index.js new file mode 100644 index 0000000..59b0959 --- /dev/null +++ b/routes/index.js @@ -0,0 +1,15 @@ +var express = require('express'); +var router = express.Router(); + +/* GET home page. */ +router.get('/', function(req, res) { + res.render('index', { title: 'Express' }); +}); +router.get('/csstest', function(req, res) { + res.render('css_test.ejs', { title: 'Express' }); +}); +router.get('/something_else', function(req, res) { + res.json("whatever"); +}); + +module.exports = router; diff --git a/routes/user.js b/routes/user.js new file mode 100644 index 0000000..c00d7de --- /dev/null +++ b/routes/user.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/.header.ejs.un~ b/views/.header.ejs.un~ new file mode 100644 index 0000000..acefa93 Binary files /dev/null and b/views/.header.ejs.un~ differ diff --git a/views/.index.ejs.un~ b/views/.index.ejs.un~ new file mode 100644 index 0000000..04ee118 Binary files /dev/null and b/views/.index.ejs.un~ differ diff --git a/views/css_test.ejs b/views/css_test.ejs new file mode 100644 index 0000000..94e96e6 --- /dev/null +++ b/views/css_test.ejs @@ -0,0 +1,28 @@ +<% include header %> +
+
+ + + + + + + + + + I am 25% wide. + +
+
+ + + + + + + + I am 75% wide. +
+
+ +<% include footer %> diff --git a/views/error.ejs b/views/error.ejs new file mode 100644 index 0000000..c2d4fa3 --- /dev/null +++ b/views/error.ejs @@ -0,0 +1,7 @@ +<% include header %> + + <%- message %> + <%- error.status %> + <%- error.stack %> + +<% include footer %> \ No newline at end of file diff --git a/views/footer.ejs b/views/footer.ejs new file mode 100644 index 0000000..691287b --- /dev/null +++ b/views/footer.ejs @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/views/header.ejs b/views/header.ejs new file mode 100644 index 0000000..e7317e4 --- /dev/null +++ b/views/header.ejs @@ -0,0 +1,12 @@ + + + + + + + <%-title %> + + + + + diff --git a/views/index.ejs b/views/index.ejs new file mode 100644 index 0000000..94e96e6 --- /dev/null +++ b/views/index.ejs @@ -0,0 +1,28 @@ +<% include header %> +
+
+ + + + + + + + + + I am 25% wide. + +
+
+ + + + + + + + I am 75% wide. +
+
+ +<% include footer %> -- cgit v1.2.3-70-g09d2