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')) +});