From 1683e08a398218a88fbe6e31494fa1022329f89c Mon Sep 17 00:00:00 2001 From: Chroslen <chroslen@gmail.com> Date: Mon, 23 Jan 2017 18:49:59 +0800 Subject: [PATCH 1/2] Express 3.x to 4.x Migration --- app.js | 76 +++++++++++++++++++++++++-------------------------- package.json | 41 ++++++++++++++++++++++----- routes/api.js | 2 +- 3 files changed, 73 insertions(+), 46 deletions(-) diff --git a/app.js b/app.js index abac5238..b6ecbf29 100644 --- a/app.js +++ b/app.js @@ -1,36 +1,38 @@ - -/** - * Module dependencies. - */ - -var express = require('express'), - routes = require('./routes'), - api = require('./routes/api'); - -var app = module.exports = express.createServer(); - -// Configuration - -app.configure(function(){ - app.set('views', __dirname + '/views'); - app.set('view engine', 'jade'); - app.set('view options', { - layout: false - }); - app.use(express.bodyParser()); - app.use(express.methodOverride()); - app.use(express.static(__dirname + '/public')); - app.use(app.router); -}); - - -app.configure('development', function(){ - app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); -}); - -app.configure('production', function(){ - app.use(express.errorHandler()); -}); +var http = require('http'); +var express = require('express'); +var routes = require('./routes'); +var api = require('./routes/api'); +var path = require('path'); + +var favicon = require('serve-favicon'); +var logger = require('morgan'); +var methodOverride = require('method-override'); +var session = require('express-session'); +var bodyParser = require('body-parser'); +var multer = require('multer'); +var errorHandler = require('errorhandler'); + +var app = express(); + +// all environments +app.set('port', process.env.PORT || 3000); +app.set('views', path.join(__dirname, 'views')); +app.set('view engine', 'jade'); +// app.use(favicon(__dirname + '/public/favicon.ico')); +app.use(logger('dev')); +app.use(methodOverride()); +app.use(session({ resave: true, + saveUninitialized: true, + secret: 'uwotm8' })); +app.use(bodyParser.json()); +app.use(bodyParser.urlencoded({ extended: true })); +// app.use(multer()); +app.use(express.static(path.join(__dirname, 'public'))); + +// error handling middleware should be loaded after the loading the routes +if ('development' == app.get('env')) { + app.use(errorHandler()); +} // Routes @@ -40,7 +42,6 @@ app.get('/partials/:name', routes.partials); // JSON API app.get('/api/posts', api.posts); - app.get('/api/post/:id', api.post); app.post('/api/post', api.addPost); app.put('/api/post/:id', api.editPost); @@ -49,8 +50,7 @@ app.delete('/api/post/:id', api.deletePost); // redirect all others to the index (HTML5 history) app.get('*', routes.index); -// Start server - -app.listen(3000, function(){ - console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env); +var server = http.createServer(app); +server.listen(app.get('port'), function(){ + console.log('Express server listening on port ' + app.get('port')); }); diff --git a/package.json b/package.json index 84470bfe..67197e50 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,36 @@ { - "name": "application-name" - , "version": "0.0.1" - , "private": true - , "dependencies": { - "express": "2.5.10" - , "jade": ">= 0.0.1" + "name": "myblog", + "version": "1.0.0", + "description": "my first blog", + "main": "app.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/chroslen/myblog.git" + }, + "keywords": [ + "blog" + ], + "author": "chroslen", + "license": "ISC", + "bugs": { + "url": "https://github.com/chroslen/myblog/issues" + }, + "homepage": "https://github.com/chroslen/myblog#readme", + "dependencies": { + "angularjs": "0.0.1", + "body-parser": "^1.16.0", + "connect": "^3.5.0", + "errorhandler": "^1.5.0", + "express": "^4.14.0", + "express-session": "^1.15.0", + "jade": "^1.11.0", + "method-override": "^2.3.7", + "morgan": "^1.7.0", + "multer": "^1.2.1", + "pug": "^2.0.0-beta6", + "serve-favicon": "^2.3.2" } -} \ No newline at end of file +} diff --git a/routes/api.js b/routes/api.js index 48deee3b..fc883fa4 100644 --- a/routes/api.js +++ b/routes/api.js @@ -75,4 +75,4 @@ exports.deletePost = function (req, res) { } else { res.json(false); } -}; \ No newline at end of file +}; From 11c44413a592b3794ad73bc59dd57648766733b6 Mon Sep 17 00:00:00 2001 From: Chroslen <chroslen@gmail.com> Date: Mon, 23 Jan 2017 19:10:19 +0800 Subject: [PATCH 2/2] changed package --- app.js | 11 +++++++++-- package.json | 16 +--------------- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/app.js b/app.js index b6ecbf29..ffa65875 100644 --- a/app.js +++ b/app.js @@ -1,3 +1,8 @@ + +/** + * Module dependencies. + */ + var http = require('http'); var express = require('express'); var routes = require('./routes'); @@ -18,7 +23,6 @@ var app = express(); app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); -// app.use(favicon(__dirname + '/public/favicon.ico')); app.use(logger('dev')); app.use(methodOverride()); app.use(session({ resave: true, @@ -26,10 +30,10 @@ app.use(session({ resave: true, secret: 'uwotm8' })); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); -// app.use(multer()); app.use(express.static(path.join(__dirname, 'public'))); // error handling middleware should be loaded after the loading the routes + if ('development' == app.get('env')) { app.use(errorHandler()); } @@ -48,8 +52,11 @@ app.put('/api/post/:id', api.editPost); app.delete('/api/post/:id', api.deletePost); // redirect all others to the index (HTML5 history) + app.get('*', routes.index); +// Start server + var server = http.createServer(app); server.listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); diff --git a/package.json b/package.json index 67197e50..5139cd16 100644 --- a/package.json +++ b/package.json @@ -1,24 +1,10 @@ { - "name": "myblog", + "name": "application-name", "version": "1.0.0", - "description": "my first blog", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, - "repository": { - "type": "git", - "url": "git+https://github.com/chroslen/myblog.git" - }, - "keywords": [ - "blog" - ], - "author": "chroslen", - "license": "ISC", - "bugs": { - "url": "https://github.com/chroslen/myblog/issues" - }, - "homepage": "https://github.com/chroslen/myblog#readme", "dependencies": { "angularjs": "0.0.1", "body-parser": "^1.16.0",