-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
57 lines (50 loc) · 1.84 KB
/
app.js
File metadata and controls
57 lines (50 loc) · 1.84 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
var fs = require("fs" );
var http = require("http");
var url = require("url" );
/** favicon is the static icon for the site.
* It is also used by iOS when it's added to the home screen.
*/
var favicon = fs.readFileSync('./favicon.ico');
var router = function(req, res) {
syslog("ReqHeader|" + req.connection.remoteAddress
+ "|" + JSON.stringify(req.headers)
);
var path = url.parse(req.url).pathname;
switch(path) {
case '/favicon.ico':
syslog("favicon.ico is requested.");
res.writeHead(200, {'Content-Type': 'image/gif' });
res.end(favicon, 'binary');
break;
case '/suggest/':
respond(req, res);
break;
default:
res.writeHead(200, {'Content-Type': 'text/plain' });
res.end("Cannot find page.");
}
}
var syslog = function(text) {
var ts = new Date();
console.log(ts.toISOString() + "|" + text + "~~");
}
var respond = function(request, response) {
syslog("Request " + url.parse(request.url).pathname
+ " received. Sending back response..."
);
response.writeHead(200, {'Content-Type': 'text/html'});
response.write('<!DOCTYPE HTML>\n');
response.write('<HTML><HEAD><TITLE>PortfolioPlot</TITLE>'
+ '<link rel="apple-touch-icon" href="/favicon.ico" />'
+ '</HEAD><BODY>\n'
);
response.write('[{"id":"NFLX","text":"NFLX","extra":"Netflix Inc."}\n');
response.write(',{"id":"AAPL","text":"AAPL","extra":"Apple Inc."}\n');
response.write(',{"id":"INTC","text":"INTC","extra":"Intel Corp."}\n');
response.write(',{"id":"GOOG","text":"GOOG","extra":"Google Inc."}\n');
response.write(']');
response.end('</BODY></HTML>');
}
var server = http.createServer(router);
server.listen(3690);
console.log("Server launched on port 3690.");