exp2slack
You can use this to report errors to Slack from your node application, as an ExpressJs middleware or standalone library.
Get Your Slack Web Hook Url
- set up a new application in slack
- create a new Incoming Webhooks and get your
SLACK_WEBHOOK_URL
-
npm i @kedoska/exp2slack --save
oryarn add @kedoska/exp2slack
Use it as express middleware
See the example and make sure you are initializing this middleware AFTER all your app
setup/routes. Also consider that when this is a middleware it will:
- report the error to slack (wait for slack to reply)
- call
next
passing the original error in the express pipeline. This will may slowdown your application (if it is firing a lot of errors).
const express = require('express') // <-- Step 1
const exp2slack = require('@kedoska/exp2slack')
const app = express()
const url = 'https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
app.get('/', (req, res) => {
const runTimeError = foo + bar // <-- Step 3 ( foo not defined)
})
app.use((exp2slack(url))) // <-- Step 2
app.listen(8080)
More details about Express Error Handling available here
Now without express
Once you have initialized the IncomingWebhook
with your url
you can manually push an error to slack by calling the notify function. Here the example without express.
After passing the url
to the configure
method, you can notify
any Error
.
const { configure, notify } = require('@kedoska/exp2slack') // <-- Step 1
const url = 'https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
configure(url) // <-- Step 2
const initApplication = () => {
try {
throw new Error('')
} catch (err) {
notify(err) // <-- Step 3
}
}
initApplication()
Dependencies
- error-stack-parser
- node-slack-sdk (@slack/client)
Extra code and fancy If/s
error-stack-parser
. Mainly to cut some paths and try to get a nice format in slack.