diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index d2fde238b..552b72a88 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -81,9 +81,9 @@ This task extends `watch`. In addition, it will lint, test and copy the result i
After this, just like `watch`, it will run these steps every time a file has changed.
On top of that, this task supports **live reloading** (on default port).
-This task works in harmony with `grunt server`.
+This task works in harmony with `npm run start-demo`.
-#### grunt server
+#### npm run start-demo
This task provides a simple http server on port `3005`. If you start it on your machine, you
have access to the project`s demos with real XHR operations.
diff --git a/Gruntfile.js b/Gruntfile.js
index 354d7e870..5421c8918 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -496,16 +496,6 @@ module.exports = function (grunt) {
}
},
- express: {
- server: {
- options: {
- port: 3005,
- bases: '.',
- server: __dirname + '/server.js'
- }
- }
- },
-
ngdocs: {
options: {
dest: 'tmp',
@@ -776,7 +766,6 @@ module.exports = function (grunt) {
// For development purpose.
grunt.registerTask('dev', ['jshint', 'karma:unit', 'concat', 'copy:demo', 'watch:livereload']);
- grunt.registerTask('server', ['express', 'express-keepalive']);
// Legacy support
grunt.registerTask('changelog', ['conventionalChangelog']);
diff --git a/demo/ex9_load_dynamic_files.htm b/demo/ex9_load_dynamic_files.htm
index 5d387c73e..f541ae844 100644
--- a/demo/ex9_load_dynamic_files.htm
+++ b/demo/ex9_load_dynamic_files.htm
@@ -34,7 +34,7 @@
load.dynamic.SUBHEADER
// Those urls are [specified_url]?lang=[langKey].
//
// Note that to run this example you have to start a server first.
- // To run the server use a 'grunt server' command
+ // To run the server use a 'npm run start-demo' command
$translateProvider.useUrlLoader('http://localhost:3005/demo/get_lang');
// Tell the module what language to use by default
diff --git a/demo/server_routes.js b/demo/server_routes.js
index fbdfb9c2a..e19118e15 100644
--- a/demo/server_routes.js
+++ b/demo/server_routes.js
@@ -1,42 +1,42 @@
module.exports = function (app, dir) {
var url = require('url'), fs = require('fs');
- app.get('/demo/', function(req, res) {
+ app.get('/demo/', function (req, res) {
function answer(code, data) {
- res.writeHead(code,{
- 'Content-Type':'text/html;charset=utf-8'
+ res.writeHead(code, {
+ 'Content-Type' : 'text/html;charset=utf-8'
});
res.end(data);
};
var _get = url.parse(req.url, true).query;
- fs.readFile('./demo/index.htm', function(err, data) {
+ fs.readFile('./demo/index.htm', function (err, data) {
if (err) answer(404, '');
else answer(200, data);
});
});
-
+
app.get('/demo/get_lang', function (req, res) {
function answer(code, data) {
- res.writeHead(code,{
- 'Content-Type':'application/json;charset=utf-8',
- 'Access-Control-Allow-Origin':'*',
- 'Access-Control-Allow-Headers':'X-Requested-With'
+ res.writeHead(code, {
+ 'Content-Type' : 'application/json;charset=utf-8',
+ 'Access-Control-Allow-Origin' : '*',
+ 'Access-Control-Allow-Headers' : 'X-Requested-With'
});
res.end(data);
- };
+ }
var _get = url.parse(req.url, true).query;
- fs.readFile('./demo/l10n/' + _get['lang'] + '.json', function(err, data) {
+ fs.readFile('./demo/l10n/' + _get['lang'] + '.json', function (err, data) {
if (err) answer(404, '');
else answer(200, data);
});
-
+
});
// Example
app.get('/this-is-an-express-server', function (req, res) {
res.send(200);
});
-
+
};
diff --git a/package.json b/package.json
index 3b9dd3a08..56f5ba8d1 100644
--- a/package.json
+++ b/package.json
@@ -33,7 +33,8 @@
"build-site": "npm run -q build-site-all-languages; npm run -q build-site-plato-report",
"build-site-all-languages": "./build_tools/generate_site.sh",
"build-site-by-language": "./build_tools/generate_site_by_language.sh",
- "build-site-plato-report": "rm -rf ./site/plato && plato -d plato -l .jshintrc src/*.js src/**/*.js && mv plato site"
+ "build-site-plato-report": "rm -rf ./site/plato && plato -d plato -l .jshintrc src/*.js src/**/*.js && mv plato site",
+ "start-demo": "node server.js"
},
"author": {
"name": "Pascal Precht"
@@ -53,8 +54,11 @@
],
"license": "MIT",
"devDependencies": {
+ "body-parser": "^1.16.0",
"bower": "^1.7.9",
- "express": "^4.13.4",
+ "errorhandler": "^1.5.0",
+ "express": "^4.14.1",
+ "express-session": "^1.15.0",
"fbjs-scripts": "^0.7.1",
"grunt": "~1.0.1",
"grunt-bower-install-simple": "^1.0.3",
@@ -67,7 +71,6 @@
"grunt-contrib-uglify": "^2.0.0",
"grunt-contrib-watch": "^1.0.0",
"grunt-conventional-changelog": "^6.1.0",
- "grunt-express": "^1.4.1",
"grunt-file-append": "0.0.6",
"grunt-karma": "^2.0.0",
"grunt-ng-annotate": "^3.0.0",
@@ -83,8 +86,14 @@
"karma-jasmine": "^1.0.2",
"karma-phantomjs-launcher": "^1.0.0",
"load-grunt-tasks": "^3.4.1",
+ "local-web-server": "^1.2.6",
+ "method-override": "^2.3.7",
+ "morgan": "^1.8.0",
+ "multer": "^1.3.0",
"phantomjs-prebuilt": "^2.1.4",
- "plato": "^1.5.0"
+ "plato": "^1.5.0",
+ "pug": "^2.0.0-beta11",
+ "serve-favicon": "^2.3.2"
},
"dependencies": {
"angular": ">=1.2.26 <=1.6"
diff --git a/server.js b/server.js
index 8ce312cc1..127af7f27 100644
--- a/server.js
+++ b/server.js
@@ -1,23 +1,23 @@
+var http = require('http');
var express = require('express');
+var logger = require('morgan');
+var methodOverride = require('method-override');
+var bodyParser = require('body-parser');
+var multer = require('multer');
+var errorHandler = require('errorhandler');
-// Create express facility.
-var app = express()
-// Create a HTTP server object.
-var server = require('http').createServer(app);
+var routes = require('./demo/server_routes');
-app.configure(function () {
- app.use(express.logger('dev'));
- app.use(express.bodyParser());
- app.use(express.methodOverride());
- app.use(express.errorHandler());
- app.use(express.static(__dirname));
- app.use(app.router);
- require('./demo/server_routes')(app, __dirname);
-});
-
-module.exports = server;
+var app = express();
+app.set('port', process.env.PORT || 3005);
+app.use(logger('dev'));
+app.use(methodOverride());
+app.use(bodyParser.json());
+app.use(bodyParser.urlencoded({extended : true}));
+app.use(express.static(__dirname));
+routes(app, __dirname);
+app.use(errorHandler());
-// Override: Provide an "use" used by grunt-express.
-module.exports.use = function () {
- app.use.apply(app, arguments);
-};
\ No newline at end of file
+app.listen(app.get('port'), function () {
+ console.log('Express server listening on port ' + app.get('port'))
+});