这里是新手,尝试展示我的博客,并设法在 page.server.js 上的 VS 代码终端中获取 RSS 提要,但不知道如何使用它。
这是代码:在 data.js 中
import fetch from 'node-fetch';
import { parseStringPromise } from 'xml2js';
export async function fetchRSSFeed(url) {
const response = await fetch(url);
const rssText = await response.text();
const parsedResult = await parseStringPromise(rssText);
const items = parsedResult.rss.channel[0].item;
return items.map(item => ({
title: item.title[0],
link: item.link[0]
}));
}
在+page.server.js中
import { fetchRSSFeed } from './data.js';
export async function load() {
const rssFeedUrl = 'myBlog';
const articles = await fetchRSSFeed(rssFeedUrl);
console.log(articles);
return {
props: {
articles
}
};
}
这是+page.svelte
<script>
export let articles = [];
console.log("Why are there no articles???", articles);
</script>
<div id="container">
<div class="about">
<p>thoughts available on substack</p>
</div>
<section>
<h2>recent posts</h2>
<hr />
<div class="posts">
{#each articles as { title, link }}
<a href={link} target="_blank">
<div class="post">
<h3>{title}</h3>
</div>
</a>
{/each}
</div>
</section>
</div>
预先感谢,大爱x
我想在 Svelte 中制作 RSS feed,我尝试添加 data.js 作为额外的路由
这不是数据加载的工作原理。
返回的对象总是传递给一个名为
data
的属性,没有 props
。
return { articles };
export let data; // data.articles