Post 响应的提取后过滤
我正在尝试使用PostFetch钩子从我的集合中筛选某些结果。我有一组我正在尝试筛选的日期。我只希望回复是今天或未来的日期。 我可以使用我的代码确定日志中的哪些日期,但无论我做什么,我似乎都无法正确地使用代码过滤掉那些已过的日期。我目前已将其设置为“全部通过”,如何才能使此筛选正常工作?任何帮助都将不胜感激Post 响应的提取后过滤,post,response,requestfiltering,Post,Response,Requestfiltering,我正在尝试使用PostFetch钩子从我的集合中筛选某些结果。我有一组我正在尝试筛选的日期。我只希望回复是今天或未来的日期。 我可以使用我的代码确定日志中的哪些日期,但无论我做什么,我似乎都无法正确地使用代码过滤掉那些已过的日期。我目前已将其设置为“全部通过”,如何才能使此筛选正常工作?任何帮助都将不胜感激 function onPostFetch(request, response, modules) { var moment = modules.moment(); var logge
function onPostFetch(request, response, modules)
{
var moment = modules.moment();
var logger = modules.logger;
var today= new Date();
for (var i =0; i<60; i++)
{
var eventDate= response.body[i].date;
if (modules.moment(eventDate).isBefore(today))
{
response.continue();
logger.info("Event Has Passed")
}
else
{
logger.info("Event is Upcoming")
response.continue();
}
}
}
函数onPostFetch(请求、响应、模块)
{
var moment=modules.moment();
var logger=modules.logger;
var today=新日期();
for(var i=0;i一个问题是在for循环中调用response.continue。response.continue返回响应并停止进一步的处理,因此在第一次通过循环时,您将返回而不处理其他项
尝试删除循环中的数组项会变得很棘手,因为从数组中删除项时,数组会重新编制索引。有两种方法可以实现您的目标:
创建一个数组来保存最终要返回的元素,然后用这个新数组替换response.body
var eventDate = "";
var filteredResults = [];
for (var i = 0; i<response.body.length;i++) {
eventDate= response.body[i].date;
if (modules.moment(eventDate).isBefore(today) {
filteredResults.push(response.body[i];
}
}
response.body = filteredResults;
response.continue();
var eventDate = "";
for (i = 0; i < response.body.length; i++) {
eventDate = response.body[i].date;
if (!modules.moment(eventDate).isBefore(today)) {
response.body.splice(i, 1);
i--; // decrement
}
}
response.continue();
var eventDate = "";
for (i = response.body.length; i >= 0; i--) {
eventDate = response.body[i].date;
if (!modules.moment(eventDate).isBefore(today)) {
response.body.splice(i, 1);
}
}
response.continue();