-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
94 lines (83 loc) · 2.5 KB
/
server.js
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// use javascript in strict mode
'use strict';
// import all required modules
const express = require("express");
const logger = require('./utils/logger');
const exphbs = require('express-handlebars');
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');
const fileUpload = require('express-fileupload');
// initialise project
const app = express();
// static files output to public folder
app.use(express.static("public"));
// use bodyParser, cookieParser, fileUpload
app.use(bodyParser.urlencoded({ extended: false, }));
app.use(cookieParser());
app.use(fileUpload());
// use handlebars as view engine
app.engine('.hbs', exphbs({
extname: '.hbs',
defaultLayout: 'main',
helpers: {
uppercase: (inputString) => {
return inputString.toUpperCase();
},
formatDate: (date) => {
let dateCreated = new Date(date);
let dateNum = dateCreated.getDate();
let month = dateCreated.getMonth();
let year = dateCreated.getFullYear();
let day = dateCreated.getDay();
let months = [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
];
let days = [
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat",
"Sun"
];
let dayname = days[day];
let monthname = months[month];
return `${dayname} ${monthname} ${dateNum}, ${year}`;
},
populate: (genre) => {
const genres = ["Action", "Crime", "Drama", "Comedy", "Romantic", "Historic"]
genres.splice(genres.indexOf(genre), 1)
let options = ``
for (let item of genres) {
options+=`<option value ="${item}">${item}</option>`
}
return options
},
capitalise: (str) => {
let words=str.split(" ")
let formattedname=""
words.forEach(word => formattedname+= `${word.charAt(0).toUpperCase()}${word.substring(1,).toLowerCase()} `)
return formattedname
}
}
}));
app.set('view engine', '.hbs');
// import routes file and use this for routing
const routes = require('./routes');
app.use('/', routes);
// listen for requests :)
const listener = app.listen(process.env.PORT || 4000, function () {
logger.info('Your app is listening on port ' + listener.address().port);
});