Browse Source

wrote a quick impementing RSS feed blog post

pull/86/head
jrtechs 4 years ago
parent
commit
406ff5d465
2 changed files with 65 additions and 0 deletions
  1. BIN
      blogContent/headerImages/badDrawingRSS.png
  2. +65
    -0
      blogContent/posts/web-development/node-rss-feed.md

BIN
blogContent/headerImages/badDrawingRSS.png View File

Before After
Width: 1002  |  Height: 359  |  Size: 17 KiB

+ 65
- 0
blogContent/posts/web-development/node-rss-feed.md View File

@ -0,0 +1,65 @@
One of the beautiful things about Node is that it is really easy to do just about anything in a few lines of code.
To put this in perspective, it took me longer to make this *terrible* blog post header than it did for me to implement an RSS feed in node.
An RSS (rich site summary) feed enables people to subscribe to blogs and get notified when there is a new post.
People also use RSS feeds to aggregate all the blogs they read in one place.
Although RSS is on the decline, it is still widely used in the tech community.
Before looked for a package I added a route listening on "/rss" which sends a static object that will eventually store the RSS feed object.
```javascript
routes.get('/rss', (request, result) =>
{
result.set('Content-Type', 'text/xml');
result.send(xmlFeed);
});
```
The next step was to find a nifty node package that handles the generation of RSS XML.
I'm using the [package](https://www.npmjs.com/package/rss) adequately named "RSS".
```bash
npm install -s rss
```
Based on the documentation for the package, I initialized the RSS generator object.
```
// defines basic details about your blog
var feed = new RSS({
title: 'jrtechs',
description: 'Jeffery\'s blog which has everything from data-science to cooking',
feed_url: 'https://jrtechs.net/rss',
site_url: 'https://jrtechs.net',
image_url: 'https://jrtechs.net/includes/img/favicon/android-chrome-512x512.png',
docs: 'https://github.com/jrtechs/NodeJSBlog',
language: 'en',
categories: ['other', 'hardware', 'open-source', 'programming', 'projects', 'web-development', 'data-science'],
});
var xmlFeed = feed.xml();
```
The final step was to add all the recent posts to the RSS feed.
```javascript
const sql = require('../utils/sql');
sql.getRecentPosts().then((posts)=>
{
posts.forEach(post =>
{
feed.item({
title: post.name,
url: "https://jrtechs.net/" + post.category + "/" + post.url,
date: post.published
});
});
xmlFeed = feed.xml();
}).catch((err)=>
{
console.log(err);
});
```
Although my implementation is probably very rudimentary, it is flexible and implementing it myself gave me a deeper appreciation for RSS.
Looking through the package documentation, I discovered a multitude of details that RSS feeds could contain that I didn't know about.

Loading…
Cancel
Save