Я создаю простой микросервис, который возвращает параметры даты url в виде объекта Json на Unix и естественном языке. Например, если вы идете в
https://cyber -clock.glitch.me / май 2013%,% 202015
приложение должно вернуть: {"unix": 1431475200, "natural": "13 мая 2015"} ,
% 20 - это пробелы, поэтому вы также можете написать
https://cyber -clock.glitch.me / May 13, 2015
и приложение работает.
Проблема заключается в том, что я пишу двойной процент, потому что получаю ошибку 400 неверных запросов, а URL становится: / favicon.ico , поэтому я не могу применить исправления к URL и ответу, как ожидается, например:
https://cyber -clock.glitch.me / май %% 2013,% 202015
Вы можете проверить исходный код здесь: https://github.com/juandata/TimeStampMicroService
В строке 22 timeStampMicroService.js я добавил console.log, где вы можете увидеть, что я имею в виду. Вот код этого файла:
var path = require('path')
var express = require('express');
var app = express();
var fs = require('fs');
var url = require('url');
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
jsonResp = {},
readableDate = "";
function Unix_timestamp(t) {
var dt = new Date(t * 1000);
var month = dt.getMonth();
var day = dt.getDate();
var year = dt.getFullYear();
return months[month] + ' ' + day + ', ' + year;
};
app.use(function(req, res, next) {
console.log(req.url);
var date = req.url.substr(1);
var miliseconds = parseInt(date);
var unixDate = new Date(miliseconds);
if (unixDate == "Invalid Date") {
var regExpr = /%20|,/;
date = date.split(regExpr);
var date1 = new Date(date[0] + " " + date[1] + "," + date[3]);
if (date1 == "Invalid Date") {
jsonResp = {
"unix": null,
"natural": null
};
res.json(jsonResp);
} else {
var date2 = date1.getTime();
var timestamp = Math.floor(date2 / 1000);
jsonResp = {
"unix": timestamp,
"natural": date[0] + " " + date[1] + ", " + date[3]
};
res.json(jsonResp);
}
} else {
readableDate = Unix_timestamp(date);
jsonResp = {
"unix": miliseconds,
"natural": readableDate
};
res.json(jsonResp);
}
});
app.listen(process.env.PORT, function() {
console.log('Node.js listening ...');
});
Может кто-нибудь помочь мне решить эту проблему?