|
|
- 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.
|