Ошибка типа: Recaptcha не является конструктором

#javascript #node.js #express #recaptcha

#javascript #node.js #выразить #recaptcha

Вопрос:

Внезапно мое приложение перестало компилироваться из-за этого TypeError: Recaptcha не является конструктором.

     recaptchaConfig() {
        this.recaptcha = new Recaptcha(
            config.service.recaptcha.client_key,
            config.service.recaptcha.secret_key , 
            {...config.service.recaptcha.options}
        );
    }
  

Он работал просто отлично, и теперь я не знаю, что вызвало это.
https://github.com/arya107/AskArya-Node.js-Vue.js/blob/master/Server/app/http/controllers/controller.js

Ответ №1:

Просто попробовал ваш код и с:

 var Recaptcha = require('express-recaptcha').Recaptcha;
  

получил исключение sam, но если вы попытаетесь:

 var Recaptcha = require('express-recaptcha').RecaptchaV3;
  

это работает, попробуйте.

Комментарии:

1. теперь он запускается, но когда я пытаюсь войти в приложение, он выдает мне эту ошибку: требуется обратный вызов Ошибка: требуется обратный вызов

2. тогда вам нужно это: var recaptcha = new Recaptcha('SITE_KEY', 'SECRET_KEY',{callback:'cb'});

3. this.recaptcha = new Recaptcha( config.service.recaptcha.client_key, config.service.recaptcha.secret_key , {...config.service.recaptcha.options} ); там вы видите, что третий аргумент — это object (параметры), отправьте свою функцию обратного вызова внутри третьего аргумента

4. вам нужно что-то вроде this.recaptcha = new Recaptcha( config.service.recaptcha.client_key, config.service.recaptcha.secret_key , {callback: function() {....your_function_code}} ); Мне не хватает контекста, но попробуйте что-то подобное, может быть, документы помогут npmjs.com/package/express-recaptcha