#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