Responding to keywords
In the previous chapter, we used regular expressions to test the contents of the message against some predefined keywords. Once the keywords were confirmed, we could perform actions and return the results. This worked well; however, it can lead to a large if else
block for more feature-rich bots. Instead, we will now look at refactoring the end result of the previous chapter into a more modular design. In this section, we will accomplish this by using ES6's new class
syntax and Node's export
method.
Using classes
Start by creating a new JavaScript file and name it bot.js
. Paste the following into bot.js
and save the file:
'use strict'; const RtmClient = require('@slack/client').RtmClient; const MemoryDataStore = require('@slack/client').MemoryDataStore; const CLIENT_EVENTS = require('@slack/client').CLIENT_EVENTS; const RTM_EVENTS = require('@slack/client').RTM_EVENTS; class Bot { constructor(opts) { ...