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