├── .gitignore
├── views
├── partials
│ ├── footer.hbs
│ └── header.hbs
├── about.hbs
├── maintenance.hbs
├── home.hbs
└── projects.hbs
├── package.json
├── public
└── help.html
└── server.js
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | server.log
3 | package-lock.json
--------------------------------------------------------------------------------
/views/partials/footer.hbs:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/views/partials/header.hbs:
--------------------------------------------------------------------------------
1 | {{pageTitle}}
4 |
5 |
6 |
7 |
8 |
some text here
14 | 15 | -------------------------------------------------------------------------------- /views/about.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |some text here
14 | 15 | {{> footer}} 16 | 17 | -------------------------------------------------------------------------------- /views/maintenance.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |this site currenlty being updated
14 | 15 | -------------------------------------------------------------------------------- /views/home.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |{{screamIt welcomeMessage}}
14 | 15 | {{> footer}} 16 | 17 | -------------------------------------------------------------------------------- /views/projects.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |Project page text would go here
14 | 15 | {{> footer}} 16 | 17 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const hbs = require('hbs'); 3 | const fs =require('fs'); 4 | 5 | //for dynamic port allocation 6 | const port =process.env.PORT || 3000; 7 | // create an app 8 | var app = express(); 9 | 10 | //for setting up template for pages 11 | hbs.registerPartials(__dirname + '/views/partials'); 12 | 13 | //set up a view engine 14 | app.set('view engine','hbs'); 15 | 16 | //middleware ---- lets you configure express to work like to your way 17 | /* logiing to screen 18 | api authetication 19 | write header is sent 20 | respont to a request -- resppoonse.render response.sent 21 | whether logded in and give access to him*/ 22 | 23 | 24 | // next for next thing to do 25 | app.use((req,res,next)=>{ 26 | var now = new Date().toString(); 27 | //creating LOGGER 28 | var log = `${now}: + ${req.method} ${req.url}`; 29 | console.log(log); 30 | fs.appendFile('server.log',log + '\n',(err)=>{ 31 | if(err){ 32 | console.log('Unable to Append to server.log'); 33 | } 34 | }); 35 | 36 | next(); 37 | }); 38 | 39 | // app.use((req,res,next)=>{ 40 | // res.render('maintenance.hbs'); 41 | // }); 42 | 43 | app.use(express.static(__dirname + '/public')); 44 | 45 | 46 | //register helper of hbs 47 | hbs.registerHelper('getCurrentYear',()=>{ 48 | return new Date().getFullYear(); 49 | }); 50 | //helper with arguemets 51 | hbs.registerHelper('screamIt',(text)=>{ 52 | return text.toUpperCase(); 53 | }); 54 | 55 | //setting up http routehandler 56 | app.get('/',(req,res)=>{ 57 | 58 | res.render('home.hbs',{ 59 | pageTitle:'Home Page', 60 | welcomeMessage:'welcome to my website' 61 | }); 62 | //res.send('