Я застрял на том, что лучший способ создать функцию обратного вызова оболочки в узел / экспресс, который использует те же параметры.
Дело в том, что для проверки требуются те же параметры, что и для обратного вызова. Есть ли способ упростить это? Я искал это в стеке и Google, но не смог найти ответ. Я не хочу писать req, res, следующий дважды в фактическом вызове. Я понимаю, что первый запрос, res, next направляются в обратный вызов, но все еще кажется странным писать это так. Такое ощущение, что определенно есть лучший подход, но я просто не знаю, что это такое.
Вот ситуация:
function verifyCaptcha(req, res, next, callback) {
let captchaResponse = req.body.captchaResponse;
let captchaSecret = "it's a secret";
let captchaURL = "https://www.google.com/recaptcha/api/siteverify?"
+ "secret=" + encodeURIComponent(captchaSecret) + "&"
+ "response=" + encodeURIComponent(captchaResponse) + "&"
+ "remoteip" + encodeURIComponent(req.connection.remoteAddress);
// request is ASYNC, that's why I need the callback
request(captchaURL, function(error, response, body) {
callback(req, res, next);
return;
});
};
router.post('/login', function(req, res, next) {
// example call INSIDE a route (here's the problem b/c params are repeated in the call
verifyCaptcha(req, res, next, function(req, res, next){
// do stuff
});
};