-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathserver.js
56 lines (51 loc) · 1.25 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
var http = require('http');
var fs = require('fs');
var urlParser = require('url');
var qlikAuth = require('qlik-auth');
var contentTypeMap = {
"js":"text/javascript",
"html":"text/html",
"css":"text/css",
"ttf":"font/ttf",
"ico":"image/x-icon"
};
var server = http.createServer(function(req, res){
switch(req.url){
case "/":
serveFile("public/index.html", res);
break;
default:
if(req.url.indexOf('authenticate?')!=-1){
var profile = {
'UserDirectory': 'QLIK',
'UserId': 'sample',
'Attributes': []
}
var options = {
'Certificate': './client.pfx',
'PassPhrase': ''
}
qlikAuth.requestTicket(req, res, profile, options);
}
else{
serveFile(req.url.replace(/\//,''), res);
}
break;
}
}).listen(3000);
console.log('Server running on port 3000');
function serveFile(url, res){
console.log(url.replace(/\//, ''));
var contentType = contentTypeMap[url.split('.').pop()];
console.log(contentType);
fs.readFile(url, function(err, data){
res.writeHead(200, {'Content-Type':contentType});
if(contentType=="image/x-icon"){
res.write(""+data);
}
else {
res.write(data);
}
res.end();
})
}