Repository navigation
Expand file tree
/
Copy pathserver.js
More file actions
65 lines (52 loc) · 1.66 KB
/
Copy pathserver.js
File metadata and controls
65 lines (52 loc) · 1.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
const express = require('express');
const hbs = require('hbs');
const fs = require('fs');
var app = express();
const port = 3000;
// Register partials for header / footer etc components
hbs.registerPartials(__dirname + "/views/partials");
// Define app view engine with html extention
// view engines need VIEWS folder created
app.set('view engine', 'html');
app.engine('html', require('hbs').__express);
//custom middleware for maintenance
// app.use( (req, res, next)=>{
// res.render('maintenance.html');
// });
// Middleware function to server absolute directory
app.use( express.static(__dirname + "/public") );
// Custom Middleware
app.use( (req, res, next) => {
var now = new Date().toString();
var log = `${now}: ${req.method}: ${req.url} \n`;
fs.appendFile('server-log.txt', log);
// console.log(`${now}: ${req.method}: ${req.url}`);
next();
});
// Register helper mehtod from HBS for specific function
hbs.registerHelper('currentYear', ()=> {
return new Date().getFullYear()
});
// Custom Helper method works like Pipe
hbs.registerHelper('toUpperCase', (text) => {
return text.toUpperCase();
});
app.get('/', (req, res)=> {
res.render('index.html', {
pageTitle: "Home page title goes here"
});
});
app.get('/about', (req, res)=> {
// Pass the data with second args key value pare
res.render('about.html', {
pageTitle: "About Page title goes here"
});
});
app.get('/bad', (req, res)=> {
res.send({
errorMessage: "UNABLE TO FETCH"
});
});
app.listen(port, () => {
console.log(`Example app listening on port ${port}!`);
});