Home > Back-end >  TypeError: Slackbot is not a constructor
TypeError: Slackbot is not a constructor

Time:04-06

I need your help because it's the first time that I develop a Slack bot and I don't understand why this message appear:

const botSlack = new Slackbot ({
                 ^

TypeError: Slackbot is not a constructor

Here my code : slack.js

const {Slackbot} = require('@slack/bolt');

const botSlack = new Slackbot({
    token : process.env.SLACK_BOT_TOKEN,
    signingSecret: process.env.SLACK_SIGNING_SECRET,
});

(async () => {
    await botSlack.start(process.env.PORT || 3000);
})();

Part of my package.json:

  "scripts": {
    "dev": "nodemon slack.js",
},
  "dependencies": {
    "@slack/bolt": "^3.11.0",
},

In the bolt documentation (https://api.slack.com/tutorials/hello-world-bolt) and others, it's the same and it's run.

Please someone can explain to me why ?

CodePudding user response:

The documentation has this code - App instead of Slackbot. You can rename the local variable if you want, but the import statement requires the exact name:

const { App } = require('@slack/bolt');

const botSlack = new App({
  token: process.env.SLACK_BOT_TOKEN,
  signingSecret: process.env.SLACK_SIGNING_SECRET
});

(async () => {
  await botSlack.start(process.env.PORT || 3000);
})();

if you do want to rename the value, you can use

const { App: Slackbot } = require('@slack/bolt');

It is more common to use import statements for this, you can still alias it using import { App as Stackbot} from '@slack/bolt', see MDN - import

  • Related