我正在将日期字符串作为GET方法中的查询参数传递。使用new Date(date)
方法对字符串进行硬编码和转换后,可以正常工作。但是,如果我尝试对查询参数执行相同操作,则会引发“无效日期”错误。
日期字符串的格式为ISO8601。我的查询端点是:
http://localhost:3000/api/v1/range?startDate=%222018-10-11T12%3A55%3A37.000Z%22
日期字符串为"2018-10-11T12:55:37.000Z"
节点代码段:
exports.searchItems = async (req, res) => {
try {
let startDate = req.swagger.params.startDate.value;
validCheck = new Date(startDate)
webUtils.sendResponse(res, 200, validCheck);
} catch (err) {
webUtils.errorHandler(res, err);
}
};
答案 0 :(得分:2)
在我的问题注释之后,我使用代码段require('url').parse('/range?startDate=%222018-10-11T12%3A55%3A37.000Z%22', true)
在节点8中进行了再次检查,并且使用双引号作为字符串的一部分来解析查询。即结果对象的查询部分是:
{..., query: { startDate: '"2018-10-11T12:55:37.000Z"' }, ... }
需要删除引号以创建有效的日期字符串以在Date
构造函数中使用。