2016-12-09 5 views
0

У меня есть дублирование кода, которое я хотел бы разложить.Передача аргументов вложенной функции

app.post('/login', (req, res) =>{ 
    reqOptions = {...}; 
    request(reqOptions, (error, response, body) => { 
     if (!error) { 
      res.statusCode = response.statusCode; 
      res.json(body) 
     } 
     else { 
      res.statusCode = 503; 
      res.json(body) 
     } 
    }); 
}); 

Логика в request обратного вызова всегда то же самое, и я пытаюсь найти способ, чтобы получить его в одну функцию, например:

function requestCallback(error, reponse, body) { 
    .... 
} 

app.post('/login', (req, res) =>{ 
    reqOptions = {...}; 
    request(reqOptions, requestCallback); 
}); 

Моя проблема: как может Я получаю доступ к req и res в функции requestCallback()? Нужно ли мне передавать все как аргументы?

Многие ТНХ

ответ

1

Вы можете использовать Function.prototype.bind()

function requestCallback(_req, _res, error, reponse, body) { 
    .... 
} 

request(reqOptions, requestCallback.bind(null, req, res)); 
+1

@trincot Обновлено. – guest271314

+0

Вот что я искал :) thx – DlafCreative

-1

Да, вы можете просто передать REQ и рес в качестве аргументов requestCallback()

Смежные вопросы