-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
64 lines (51 loc) · 1.6 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
// server.js
// where your node app starts
// init project
var express = require('express');
var strftime = require("strftime");
var app = express();
//var months = ['january','july', 'february', 'august','march','september','april', 'october','may','november', 'june','december'];
// we've started you off with Express,
// but feel free to use whatever libs or frameworks you'd like through `package.json`.
// http://expressjs.com/en/starter/static-files.html
app.use(express.static('public'));
// http://expressjs.com/en/starter/basic-routing.html
app.get("/", function (request, response) {
response.sendFile(__dirname + '/views/index.html');
});
app.get("/:date", function (request, response) {
var date = null ;
var valid = isDate(request.params.date);
if(valid){
date = getDate(request.params.date);
}
var result = { 'unix' : null, 'natural' : null };
// Check if it's a real Date
if(valid){
// It's really a Date (Y)
result.unix = date.getTime()/1000;
result.natural = strftime("%B %d, %Y", date);
}
var result = '<pre>' + JSON.stringify(result) + '</pre>';
response.send(result);
});
function isDate ( input ){
var arr = input.split(/,?\s+/);
if(arr.length == 3){
return new Date(input);
}else if (arr.length == 1){
return Number(arr[0]);
}
return false;
}
function getDate(input){
var date = Number(input);
if(date){
return new Date(date*1000)
}
return new Date(input);
}
// listen for requests :)
var listener = app.listen(process.env.PORT, function () {
console.log('Your app is listening on port ' + listener.address().port);
});