【发布时间】:2017-01-16 20:57:48
【问题描述】:
我的 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});
}
});
我还是一个正则表达式的新手,如果我不得不猜测它会与此有关。
PS 我没有使用 toString() 因为我的日期出现错误,即 2015 年 11 月 30 日而不是 2015 年 12 月 1 日,所以这就是我使用正则表达式这样做的原因。
谢谢!
【问题讨论】:
-
这是一个 XY 问题。不要绕过 Date 对象。将 momentjs 用于您的用例。
标签: javascript json node.js express