From e96f4c1d26df304c5875b241db535c938aff2bfa Mon Sep 17 00:00:00 2001
From: "jeangougou@gmail.com"
Date: Mon, 6 Jun 2016 17:56:56 +0100
Subject: [PATCH] added express, file structure updated
---
.bowerrc | 2 +-
package.json | 21 +++++++----
.../components/angular/.bower.json | 0
.../components/angular/LICENSE.md | 0
.../components/angular/README.md | 0
.../components/angular/angular-csp.css | 0
.../components/angular/angular.js | 0
.../components/angular/angular.min.js | 0
.../components/angular/angular.min.js.gzip | Bin
.../components/angular/angular.min.js.map | 0
.../components/angular/bower.json | 0
.../components/angular/index.js | 0
.../components/angular/package.json | 0
{client => public}/css/base.css | 0
{client => public}/css/index.css | 0
{client => public}/js/app.js | 0
{client => public}/js/controllers/todoCtrl.js | 0
{client => public}/js/directives/todoFocus.js | 0
{client => public}/js/services/todoStorage.js | 0
{client => public}/js/todomvc-common/base.js | 0
server.js | 35 ++++++++++++++++++
server/config/config.js | 20 ++++++++++
server/config/express.js | 13 +++++++
server/controllers/index.js | 10 +++++
server/controllers/todos.js | 0
server/routes.js | 14 +++++++
{client => views}/index.html | 12 +++---
27 files changed, 112 insertions(+), 15 deletions(-)
rename {client => public}/components/angular/.bower.json (100%)
rename {client => public}/components/angular/LICENSE.md (100%)
rename {client => public}/components/angular/README.md (100%)
rename {client => public}/components/angular/angular-csp.css (100%)
rename {client => public}/components/angular/angular.js (100%)
rename {client => public}/components/angular/angular.min.js (100%)
rename {client => public}/components/angular/angular.min.js.gzip (100%)
rename {client => public}/components/angular/angular.min.js.map (100%)
rename {client => public}/components/angular/bower.json (100%)
rename {client => public}/components/angular/index.js (100%)
rename {client => public}/components/angular/package.json (100%)
rename {client => public}/css/base.css (100%)
rename {client => public}/css/index.css (100%)
rename {client => public}/js/app.js (100%)
rename {client => public}/js/controllers/todoCtrl.js (100%)
rename {client => public}/js/directives/todoFocus.js (100%)
rename {client => public}/js/services/todoStorage.js (100%)
rename {client => public}/js/todomvc-common/base.js (100%)
create mode 100644 server.js
create mode 100644 server/config/config.js
create mode 100644 server/config/express.js
create mode 100644 server/controllers/index.js
create mode 100644 server/controllers/todos.js
create mode 100644 server/routes.js
rename {client => views}/index.html (87%)
diff --git a/.bowerrc b/.bowerrc
index 84392f7..7a849cb 100644
--- a/.bowerrc
+++ b/.bowerrc
@@ -1,4 +1,4 @@
{
- "directory": "client/components/",
+ "directory": "public/components/",
"timeout": 20000
}
diff --git a/package.json b/package.json
index 5a6540b..157d638 100644
--- a/package.json
+++ b/package.json
@@ -1,8 +1,13 @@
-{
- "private": true,
- "dependencies": {
- "angular": "1.3.8",
- "todomvc-common": "^1.0.1",
- "todomvc-app-css": "^1.0.1"
- }
-}
+{
+ "private": true,
+ "scripts": {
+ "start": "node server"
+ },
+ "dependencies": {
+ "ejs": "2.4.2",
+ "express": "4.13.4",
+ "mongoose": "4.4.20",
+ "todomvc-app-css": "^1.0.1",
+ "todomvc-common": "^1.0.1"
+ }
+}
diff --git a/client/components/angular/.bower.json b/public/components/angular/.bower.json
similarity index 100%
rename from client/components/angular/.bower.json
rename to public/components/angular/.bower.json
diff --git a/client/components/angular/LICENSE.md b/public/components/angular/LICENSE.md
similarity index 100%
rename from client/components/angular/LICENSE.md
rename to public/components/angular/LICENSE.md
diff --git a/client/components/angular/README.md b/public/components/angular/README.md
similarity index 100%
rename from client/components/angular/README.md
rename to public/components/angular/README.md
diff --git a/client/components/angular/angular-csp.css b/public/components/angular/angular-csp.css
similarity index 100%
rename from client/components/angular/angular-csp.css
rename to public/components/angular/angular-csp.css
diff --git a/client/components/angular/angular.js b/public/components/angular/angular.js
similarity index 100%
rename from client/components/angular/angular.js
rename to public/components/angular/angular.js
diff --git a/client/components/angular/angular.min.js b/public/components/angular/angular.min.js
similarity index 100%
rename from client/components/angular/angular.min.js
rename to public/components/angular/angular.min.js
diff --git a/client/components/angular/angular.min.js.gzip b/public/components/angular/angular.min.js.gzip
similarity index 100%
rename from client/components/angular/angular.min.js.gzip
rename to public/components/angular/angular.min.js.gzip
diff --git a/client/components/angular/angular.min.js.map b/public/components/angular/angular.min.js.map
similarity index 100%
rename from client/components/angular/angular.min.js.map
rename to public/components/angular/angular.min.js.map
diff --git a/client/components/angular/bower.json b/public/components/angular/bower.json
similarity index 100%
rename from client/components/angular/bower.json
rename to public/components/angular/bower.json
diff --git a/client/components/angular/index.js b/public/components/angular/index.js
similarity index 100%
rename from client/components/angular/index.js
rename to public/components/angular/index.js
diff --git a/client/components/angular/package.json b/public/components/angular/package.json
similarity index 100%
rename from client/components/angular/package.json
rename to public/components/angular/package.json
diff --git a/client/css/base.css b/public/css/base.css
similarity index 100%
rename from client/css/base.css
rename to public/css/base.css
diff --git a/client/css/index.css b/public/css/index.css
similarity index 100%
rename from client/css/index.css
rename to public/css/index.css
diff --git a/client/js/app.js b/public/js/app.js
similarity index 100%
rename from client/js/app.js
rename to public/js/app.js
diff --git a/client/js/controllers/todoCtrl.js b/public/js/controllers/todoCtrl.js
similarity index 100%
rename from client/js/controllers/todoCtrl.js
rename to public/js/controllers/todoCtrl.js
diff --git a/client/js/directives/todoFocus.js b/public/js/directives/todoFocus.js
similarity index 100%
rename from client/js/directives/todoFocus.js
rename to public/js/directives/todoFocus.js
diff --git a/client/js/services/todoStorage.js b/public/js/services/todoStorage.js
similarity index 100%
rename from client/js/services/todoStorage.js
rename to public/js/services/todoStorage.js
diff --git a/client/js/todomvc-common/base.js b/public/js/todomvc-common/base.js
similarity index 100%
rename from client/js/todomvc-common/base.js
rename to public/js/todomvc-common/base.js
diff --git a/server.js b/server.js
new file mode 100644
index 0000000..47271d0
--- /dev/null
+++ b/server.js
@@ -0,0 +1,35 @@
+
+'use strict';
+
+var express = require('express'),
+ path = require('path'),
+ fs = require('fs'),
+ config = require('./server/config/config'),
+ mongoose = require('mongoose');
+
+/**
+ * Main application file
+ */
+
+// Default node environment to development
+process.env.NODE_ENV = process.env.NODE_ENV || 'development';
+
+// Connect to database
+var db = mongoose.connect(config.mongo.uri, config.mongo.options);
+
+var app = express();
+
+// Express settings
+require('./server/config/express')(app);
+
+// Routing
+require('./server/routes')(app);
+
+
+// Start server
+app.listen(config.port, function () {
+ console.log('Express server listening on port %d in %s mode', config.port, app.get('env'));
+});
+
+// Expose app
+exports = module.exports = app;
diff --git a/server/config/config.js b/server/config/config.js
new file mode 100644
index 0000000..04d7adf
--- /dev/null
+++ b/server/config/config.js
@@ -0,0 +1,20 @@
+'use strict';
+
+var rootPath = require('path').normalize(__dirname + '/../..');
+
+/**
+ * Load environment configuration
+ */
+module.exports = {
+ root: rootPath,
+ env: 'development',
+ port: process.env.PORT || 3000,
+ mongo: {
+ uri: 'mongodb://localhost/todo-dev',
+ options: {
+ db: {
+ safe: true
+ }
+ }
+ }
+};
diff --git a/server/config/express.js b/server/config/express.js
new file mode 100644
index 0000000..47cb8a7
--- /dev/null
+++ b/server/config/express.js
@@ -0,0 +1,13 @@
+'use strict';
+
+var express = require('express'),
+ path = require('path'),
+ config = require('./config');
+/**
+ * Express configuration
+ */
+module.exports = function(app) {
+ app.use(express.static(path.join(config.root, 'public')));
+ app.engine('html', require('ejs').renderFile);
+ app.set('view engine', 'html');
+};
diff --git a/server/controllers/index.js b/server/controllers/index.js
new file mode 100644
index 0000000..3fe5344
--- /dev/null
+++ b/server/controllers/index.js
@@ -0,0 +1,10 @@
+'use strict';
+
+/**
+ * Send our single page app
+ */
+module.exports = {
+ index : function(req, res) {
+ res.render('index');
+ }
+};
diff --git a/server/controllers/todos.js b/server/controllers/todos.js
new file mode 100644
index 0000000..e69de29
diff --git a/server/routes.js b/server/routes.js
new file mode 100644
index 0000000..2c51024
--- /dev/null
+++ b/server/routes.js
@@ -0,0 +1,14 @@
+'use strict';
+
+let express = require('express');
+let router = express.Router();
+
+let index = require('./controllers');
+
+/**
+ * Application routes
+ */
+module.exports = function(app) {
+ // All other routes to use Angular routing to default page
+ app.get('/', index.index);
+};
diff --git a/client/index.html b/views/index.html
similarity index 87%
rename from client/index.html
rename to views/index.html
index 864bcdd..d6dbc07 100644
--- a/client/index.html
+++ b/views/index.html
@@ -65,11 +65,11 @@ todos
Part of TodoMVC
-
-
-
-
-
-
+
+
+
+
+
+