Функция res.json меняет мои данные. Если я зарегистрирую данные в функции, он вернет правильные данные. Только внутри res.json меняют данные, и я не могу понять, почему.res.json, возвращающий непреднамеренно измененный ввод
Для примера. Вместо возврата {"unix":"1484600306","naturalFormat":"2017-01-16"}
возвращает {"unix":"1484600306","naturalFormat":"\"2017-01-16\""}.
функция:
function unixToDate(timestamp) {
var a = new Date(timestamp * 1000);
//console.log(a);
var rgx = /T(\d{2}):(\d{2}):(\d{2}).(\d{3})Z/;
var newA = JSON.stringify(a);
//console.log(newA.replace(rgx, ""));
return newA.replace(rgx, "");
}
маршрут
router.get('/:unix', function(req, res) {
var timestamp = req.params.unix;
var regex = new RegExp("\\d{10}");
if (regex.test(timestamp)) {
var date = unixToDate(timestamp);
console.log(date);
res.json({ unix : timestamp, naturalFormat : date });
} else {
res.json({ unix: null, naturalFormat : null});
}
});
Опять я NEWB с регулярным выражением, и если я должен был догадаться, что бы что-то делать с этим ,
PS Я не использовал toString(), потому что моя дата не срабатывала i.e 11/30/2015 вместо 12/01/2015, поэтому я сделал это с регулярным выражением.
Спасибо!
Это проблема XY. Не взламывайте свой объект вокруг объекта Date. Используйте momentjs для вашего прецедента. – Amberlamps