forked from hasura-imad/imad-app-v2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
121 lines (108 loc) · 4.23 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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
var express = require('express');
var morgan = require('morgan');
var path = require('path');
var articles={
'article-one':{
title:'Article One|Akshun',
heading:'Article One',
date:'Feb 16, 2017',
content:`<p>
This is the content for my first article. This is the content for my first article. This is the content for my first article. This is the content for my first article.
</p>
<p>
This is the content for my first article. This is the content for my first article. This is the content for my first article. This is the content for my first article. This is the content for my first article. This is the content for my first article. This is the content for my first article.
</p>
<p>
This is the content for my first article. This is the content for my first article. This is the content for my first article. This is the content for my first article. This is the content for my first article.
</p>`
},
'article-two':{
title:'Article Two|Akshun',
heading:'Article Two',
date:'Feb 16, 2017',
content:`<p>
This is the content for my second article. This is the content for my second article. This is the content for my second article. This is the content for my second article.
</p>
<p>
This is the content for my second article. This is the content for my second article. This is the content for my second article. This is the content for my second article. This is the content for my second article. This is the content for my second article. This is the content for my second article.
</p>
<p>
This is the content for my second article. This is the content for my second article. This is the content for my second article. This is the content for my second article. This is the content for my second article.
</p>`
},
'article-three':{
title:'Article Three|Akshun',
heading:'Article Three',
date:'Feb 16, 2017',
content:'This is the content for my third article.'
}
};
function createTemplate(data){
var title=data.title;
var heading=data.heading;
var date=data.date;
var content=data.content;
var htmlTemplate=`
<html>
<head>
<title>${title}</title>
<meta name="viewport" content="width=devide-width, initial-scale=1" />
<link href="/ui/style.css" rel="stylesheet" />
</head>
<body>
<div class="container">
<div>
<a href ="/">Home</a>
</div>
<hr>
<h3>
${heading}
</h3>
<div>
${date}
</div>
<div>
${content}
</div>
</div>
</body>
</html>
`;
return htmlTemplate;
}
var app = express();
app.use(morgan('combined'));
app.get('/', function (req, res) {
res.sendFile(path.join(__dirname, 'ui', 'index.html'));
});
var counter=0;
app.get('/counter',function(req,res){
counter+=1;
res.send(counter.toString());
})
var names=[];
app.get('/submit-name/:name',function(req,res){
var name=req.params.name;
//app.get('/submit-name',function(req,res){
// var name=req.query.name;
names.push(name);
//JSON:javascript object notation
res.send(JSON.stringify(names));
})
app.get('/ui/style.css', function (req, res) {
res.sendFile(path.join(__dirname, 'ui', 'style.css'));
});
app.get('/ui/main.js', function (req, res) {
res.sendFile(path.join(__dirname, 'ui', 'main.js'));
});
app.get('/ui/madi.png', function (req, res) {
res.sendFile(path.join(__dirname, 'ui', 'madi.png'));
});
app.get('/:articleName',function(req,res){
var articleName=req.params.articleName;
res.send(createTemplate(articles[articleName]));
});
var port = 8080; // Use 8080 for local development because you might already have apache running on 80
app.listen(8080, function () {
console.log(`IMAD course app listening on port ${port}!`);
});