我这样做是出于学习目的。我有要进一步工作的RSS feed的网址。此供稿包含太多信息。我只对所有“项目”,它们的“标题”,“描述”和“ pubDate”感兴趣。我正在使用“ firebase部署-仅功能”,然后在我希望看到已清理数据的地方检查url。由于某种原因,我在云函数日志中遇到错误:“ TypeError:无法读取未定义的属性'channel' 在cleanUp(/user_code/lib/index.js:19:29)“
我尝试了另一个工作出奇的网址:https://www.theguardian.com/uk/london/rss
这是我要使用的RSS feed的URL: https://polisen.se/aktuellt/rss/hela-landet/handelser-i-hela-landet/
这是我的清理功能:
function cleanUp(data) {
const items = []
const channel = data.rss.channel
channel.item.forEach(element => {
items.push({
title: element.title,
description: element.description,
date: element.pubDate
})
});
return items
}
我希望部署后会看到所有带有子标题,描述和发布日期的项目。相反,我收到“错误:无法处理请求”,当我在google cloud函数中检查日志时,看到:
“ TypeError:无法读取未定义的属性'channel' 在cleanUp(/user_code/lib/index.js:19:29)“
答案 0 :(得分:0)
为此,我建议使用JSON对象。所以我要做的是获取RSS feed并将其转换为JSON对象。然后逐项解析并记录所需的数据。
我做了一些自我编码。请按照以下步骤了解我的示例,然后根据需要修改代码:
{
"name": "sample-http",
"version": "0.0.1",
"dependencies": {
"rss-to-json": "^1.0.4"
}
}
我已经对代码进行了自我测试,并使用您提供的链接记录了200个项目。基本上,我使用RSS并将其转换为JSON对象。然后,我遍历所有项目并记录每个项目的属性。