From 8837f40323ff5054a98d9e54a120a97d265f290e Mon Sep 17 00:00:00 2001 From: "a.sokolovsky" Date: Mon, 25 Sep 2017 17:18:21 +0300 Subject: [PATCH 01/10] test changes --- .gitignore | 1 - Procfile | 2 -- README.md | 39 ++------------------------------------- app.json | 7 ------- index.js | 22 ++++++++++++++-------- package.json | 43 +++++++++++++++---------------------------- public/main.css | 28 ++++++++++++++++++++++++++++ public/node.svg | 17 ----------------- views/index.jade | 13 +++++++++++++ views/index.js | 22 ++++++++++++++++++++++ views/package.json | 16 ++++++++++++++++ views/public/main.css | 28 ++++++++++++++++++++++++++++ views/readme.md | 3 +++ 13 files changed, 141 insertions(+), 100 deletions(-) delete mode 100644 .gitignore delete mode 100644 Procfile delete mode 100644 app.json create mode 100644 public/main.css delete mode 100644 public/node.svg create mode 100644 views/index.jade create mode 100644 views/index.js create mode 100644 views/package.json create mode 100644 views/public/main.css create mode 100644 views/readme.md diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 3c3629e647..0000000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/Procfile b/Procfile deleted file mode 100644 index 4237dd23b3..0000000000 --- a/Procfile +++ /dev/null @@ -1,2 +0,0 @@ -web: node index.js - diff --git a/README.md b/README.md index 435f3c7b0b..2af4c29bf2 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,3 @@ -# node-js-sample +# node-hello -A barebones Node.js app using [Express 4](http://expressjs.com/). - -## Running Locally - -Make sure you have [Node.js](http://nodejs.org/) and the [Heroku Toolbelt](https://toolbelt.heroku.com/) installed. - -```sh -git clone git@github.com:heroku/node-js-sample.git # or clone your own fork -cd node-js-sample -npm install -npm start -``` - -Your app should now be running on [localhost:5000](http://localhost:5000/). - -## Deploying to Heroku - -``` -heroku create -git push heroku master -heroku open -``` - -Alternatively, you can deploy your own copy of the app using the web-based flow: - -[![Deploy to Heroku](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy) - -## Documentation - -For more information about using Node.js on Heroku, see these Dev Center articles: - -- [10 Habits of a Happy Node Hacker](https://blog.heroku.com/archives/2014/3/11/node-habits) -- [Getting Started with Node.js on Heroku](https://devcenter.heroku.com/articles/getting-started-with-nodejs) -- [Heroku Node.js Support](https://devcenter.heroku.com/articles/nodejs-support) -- [Node.js on Heroku](https://devcenter.heroku.com/categories/nodejs) -- [Using WebSockets on Heroku with Node.js](https://devcenter.heroku.com/articles/node-websockets) +A little demo to show how easy it is to deploy a node app on heroku. diff --git a/app.json b/app.json deleted file mode 100644 index e69dfc18d7..0000000000 --- a/app.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "Node.js Sample", - "description": "A barebones Node.js app using Express 4", - "repository": "https://github.com/heroku/node-js-sample", - "logo": "https://rawgit.com/heroku/node-js-sample/master/public/node.svg", - "keywords": ["node", "express", "static"] -} diff --git a/index.js b/index.js index 4fab468fb1..b4b8ea97cd 100644 --- a/index.js +++ b/index.js @@ -1,13 +1,19 @@ -var express = require('express') -var app = express() -app.set('port', (process.env.PORT || 5000)) -app.use(express.static(__dirname + '/public')) +var express = require('express'); +var app = express(); + +app.set('port', (process.env.PORT || 5000)); + +app.use(express.static(__dirname + '/public')); + +// views is directory for all template files +app.set('views', __dirname + '/views'); +app.set('view engine', 'jade'); app.get('/', function(request, response) { - response.send('Hello World!') -}) + response.render('index'); +}); app.listen(app.get('port'), function() { - console.log("Node app is running at localhost:" + app.get('port')) -}) + console.log('Node app is running on port', app.get('port')); +}); diff --git a/package.json b/package.json index 6238df4011..59fc463178 100644 --- a/package.json +++ b/package.json @@ -1,29 +1,16 @@ { - "name": "node-js-sample", - "version": "0.2.0", - "description": "A sample Node.js app using Express 4", - "main": "index.js", - "scripts": { - "start": "node index.js" - }, - "dependencies": { - "express": "^4.13.3" - }, - "engines": { - "node": "4.0.0" - }, - "repository": { - "type": "git", - "url": "https://github.com/heroku/node-js-sample" - }, - "keywords": [ - "node", - "heroku", - "express" - ], - "author": "Mark Pundsack", - "contributors": [ - "Zeke Sikelianos (http://zeke.sikelianos.com)" - ], - "license": "MIT" -} + "name": "sushi-inc", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "node index.js" + }, + "author": "Aaron McCall (https://github.com/aaronmccall)", + "license": "ISC", + "dependencies": { + "express": "^4.13.3", + "jade": "^1.11.0" + } +} \ No newline at end of file diff --git a/public/main.css b/public/main.css new file mode 100644 index 0000000000..045ae82d28 --- /dev/null +++ b/public/main.css @@ -0,0 +1,28 @@ +.jumbotron { + background: #532F8C; + color: white; + padding-bottom: 80px; } + .jumbotron .btn-primary { + background: #845ac7; + border-color: #845ac7; } + .jumbotron .btn-primary:hover { + background: #7646c1; } + .jumbotron h1 { + margin-bottom: .666667em; } + .jumbotron p { + color: #d9ccee; + max-width: 75%; + margin: 1em auto 2em; } + .navbar + .jumbotron { + margin-top: -20px; } + .jumbotron .lang-logo { + display: block; + background: #B01302; + border-radius: 50%; + overflow: hidden; + width: 100px; + height: 100px; + margin: auto; + border: 2px solid white; } + .jumbotron .lang-logo img { + max-width: 100%; } \ No newline at end of file diff --git a/public/node.svg b/public/node.svg deleted file mode 100644 index 3c7e161369..0000000000 --- a/public/node.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - diff --git a/views/index.jade b/views/index.jade new file mode 100644 index 0000000000..75438b7af2 --- /dev/null +++ b/views/index.jade @@ -0,0 +1,13 @@ +doctype html +html + head + title= pageTitle || 'Heroku NodeJS Deployment Demo' + link(rel='stylesheet', href='//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css') + link(rel='stylesheet', href='main.css') + body + .jumbotron + .container + h1.text-center= header || 'Hello World!' + p.text-center NodeJS apps are a snap to deploy, a joy to manage, and a cinch to scale on Heroku. + p.text-center Come see why thousands of NodeJS devs are hosting their apps on Heroku. + a.lang-logo(href='http://heroku.com/node'): img(src='data:image/png;base64,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') \ No newline at end of file diff --git a/views/index.js b/views/index.js new file mode 100644 index 0000000000..4c0ab626b0 --- /dev/null +++ b/views/index.js @@ -0,0 +1,22 @@ + +var express = require('express'); +var app = express(); + +app.set('port', (process.env.PORT || 5000)); + +app.use(express.static(__dirname + '/public')); + +// views is directory for all template files +app.set('views', __dirname + '/views'); +app.set('view engine', 'jade'); + +app.get('/', function(request, response) { + response.render('index', { + pageTitle: 'NodeJS & Heroku', + header: '\u2744Hello, Wintry World!\u2744' + }); +}); + +app.listen(app.get('port'), function() { + console.log('Node app is running on port', app.get('port')); +}); diff --git a/views/package.json b/views/package.json new file mode 100644 index 0000000000..71c5fad104 --- /dev/null +++ b/views/package.json @@ -0,0 +1,16 @@ +{ + "name": "hrku", + "version": "1.0.0", + "description": "A Heroku nodejs hello world app", + "main": "index.js", + "scripts": { + "start": "node index.js", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "Aaron McCall (https://github.com/aaronmccall)", + "license": "ISC", + "dependencies": { + "express": "^4.13.3", + "jade": "^1.11.0" + } +} diff --git a/views/public/main.css b/views/public/main.css new file mode 100644 index 0000000000..045ae82d28 --- /dev/null +++ b/views/public/main.css @@ -0,0 +1,28 @@ +.jumbotron { + background: #532F8C; + color: white; + padding-bottom: 80px; } + .jumbotron .btn-primary { + background: #845ac7; + border-color: #845ac7; } + .jumbotron .btn-primary:hover { + background: #7646c1; } + .jumbotron h1 { + margin-bottom: .666667em; } + .jumbotron p { + color: #d9ccee; + max-width: 75%; + margin: 1em auto 2em; } + .navbar + .jumbotron { + margin-top: -20px; } + .jumbotron .lang-logo { + display: block; + background: #B01302; + border-radius: 50%; + overflow: hidden; + width: 100px; + height: 100px; + margin: auto; + border: 2px solid white; } + .jumbotron .lang-logo img { + max-width: 100%; } \ No newline at end of file diff --git a/views/readme.md b/views/readme.md new file mode 100644 index 0000000000..0103ce568e --- /dev/null +++ b/views/readme.md @@ -0,0 +1,3 @@ +# heroku-node + +A little demo to show how easy it is to deploy a node app on heroku. From f4d9d1bba9937d819f4c8a31d4e73808a61a8b28 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 25 Sep 2017 17:22:48 +0300 Subject: [PATCH 02/10] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2af4c29bf2..aaeafaec1f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ # node-hello -A little demo to show how easy it is to deploy a node app on heroku. +1. Open project folder. +2. Create heroku app: heroku create app-name +3. Open app on heroku: heroku open app-name From fd66c05092865f1faafdab3c46f4168b3d7954ed Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 25 Sep 2017 17:24:26 +0300 Subject: [PATCH 03/10] updated node version 4.0.0 to 6.9.3 --- package.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 59fc463178..1ea7379310 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,12 @@ "author": "Aaron McCall (https://github.com/aaronmccall)", "license": "ISC", "dependencies": { - "express": "^4.13.3", + "body-parser": "^1.17.2", + "express": "^4.15.3", + "mongodb": "^2.2.31", "jade": "^1.11.0" + }, + "engines": { + "node": "6.9.3" } -} \ No newline at end of file +} From cc44f45b2313e352b67830b270149a95b531ebe8 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 25 Sep 2017 17:25:46 +0300 Subject: [PATCH 04/10] Update index.jade --- views/index.jade | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/views/index.jade b/views/index.jade index 75438b7af2..1150f2b392 100644 --- a/views/index.jade +++ b/views/index.jade @@ -1,7 +1,7 @@ doctype html html head - title= pageTitle || 'Heroku NodeJS Deployment Demo' + title= pageTitle || 'Heroku NodeJS Deployment Demo !!!!!' link(rel='stylesheet', href='//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css') link(rel='stylesheet', href='main.css') body @@ -10,4 +10,4 @@ html h1.text-center= header || 'Hello World!' p.text-center NodeJS apps are a snap to deploy, a joy to manage, and a cinch to scale on Heroku. p.text-center Come see why thousands of NodeJS devs are hosting their apps on Heroku. - a.lang-logo(href='http://heroku.com/node'): img(src='data:image/png;base64,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') \ No newline at end of file + a.lang-logo(href='http://heroku.com/node'): img(src='data:image/png;base64,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') From 732d688baca21293ec11fabe6509a601e77f1667 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 25 Sep 2017 17:32:01 +0300 Subject: [PATCH 05/10] added devDependencies --- package.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 1ea7379310..572a5efc8b 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "test": "echo \"Error: no test specified\" && exit 1", "start": "node index.js" }, - "author": "Aaron McCall (https://github.com/aaronmccall)", + "author": "axel_sok", "license": "ISC", "dependencies": { "body-parser": "^1.17.2", @@ -15,6 +15,19 @@ "mongodb": "^2.2.31", "jade": "^1.11.0" }, + "devDependencies": { + "nodemon": "^1.11.0", + "babel-preset-es2015": "^6.24.1", + "babel-preset-stage-0": "^6.24.1", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.28.4", + "extract-text-webpack-plugin": "^3.0.0", + "file-loader": "^0.11.2", + "less": "^2.7.2", + "less-loader": "^4.0.5", + "style-loader": "^0.18.2", + "webpack": "^3.4.1" + }, "engines": { "node": "6.9.3" } From f8be8553d579681b68abe73e0875162deb0db9a1 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 25 Sep 2017 17:33:08 +0300 Subject: [PATCH 06/10] added devDependencies --- views/index.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/index.jade b/views/index.jade index 1150f2b392..a98d84c05c 100644 --- a/views/index.jade +++ b/views/index.jade @@ -7,7 +7,7 @@ html body .jumbotron .container - h1.text-center= header || 'Hello World!' + h1.text-center= header || 'Try to use heroku' p.text-center NodeJS apps are a snap to deploy, a joy to manage, and a cinch to scale on Heroku. p.text-center Come see why thousands of NodeJS devs are hosting their apps on Heroku. a.lang-logo(href='http://heroku.com/node'): img(src='data:image/png;base64,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') From 0fc3776a52f8ca09f6b6323b6eb471691ae0ed6f Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 25 Sep 2017 17:36:41 +0300 Subject: [PATCH 07/10] removed views/index.js --- views/index.js | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 views/index.js diff --git a/views/index.js b/views/index.js deleted file mode 100644 index 4c0ab626b0..0000000000 --- a/views/index.js +++ /dev/null @@ -1,22 +0,0 @@ - -var express = require('express'); -var app = express(); - -app.set('port', (process.env.PORT || 5000)); - -app.use(express.static(__dirname + '/public')); - -// views is directory for all template files -app.set('views', __dirname + '/views'); -app.set('view engine', 'jade'); - -app.get('/', function(request, response) { - response.render('index', { - pageTitle: 'NodeJS & Heroku', - header: '\u2744Hello, Wintry World!\u2744' - }); -}); - -app.listen(app.get('port'), function() { - console.log('Node app is running on port', app.get('port')); -}); From b2b5b875efe89d3a111d2c46f603f5a3f4f84792 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 25 Sep 2017 17:37:02 +0300 Subject: [PATCH 08/10] removed views/package.json --- views/package.json | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 views/package.json diff --git a/views/package.json b/views/package.json deleted file mode 100644 index 71c5fad104..0000000000 --- a/views/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "hrku", - "version": "1.0.0", - "description": "A Heroku nodejs hello world app", - "main": "index.js", - "scripts": { - "start": "node index.js", - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "Aaron McCall (https://github.com/aaronmccall)", - "license": "ISC", - "dependencies": { - "express": "^4.13.3", - "jade": "^1.11.0" - } -} From ecc8ce9b39641772bf90132d85df75d935cceeea Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 25 Sep 2017 17:37:20 +0300 Subject: [PATCH 09/10] removed views/readme.md --- views/readme.md | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 views/readme.md diff --git a/views/readme.md b/views/readme.md deleted file mode 100644 index 0103ce568e..0000000000 --- a/views/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# heroku-node - -A little demo to show how easy it is to deploy a node app on heroku. From 02050a6900414236ceb9a535b625b3c90cf70ab1 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 25 Sep 2017 17:37:56 +0300 Subject: [PATCH 10/10] Update index.jade --- views/index.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/index.jade b/views/index.jade index a98d84c05c..b22abefeef 100644 --- a/views/index.jade +++ b/views/index.jade @@ -7,7 +7,7 @@ html body .jumbotron .container - h1.text-center= header || 'Try to use heroku' + h1.text-center= header || 'Try to use heroku =)' p.text-center NodeJS apps are a snap to deploy, a joy to manage, and a cinch to scale on Heroku. p.text-center Come see why thousands of NodeJS devs are hosting their apps on Heroku. a.lang-logo(href='http://heroku.com/node'): img(src='data:image/png;base64,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')