将参数传递给嵌套函数

时间:2016-12-09 18:29:33

标签: javascript node.js

我有一些代码重复,我想分解。

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功能中访问resrequestCallback()?我是否需要将所有内容作为参数传递?

很多thx

2 个答案:

答案 0 :(得分:1)

您可以使用Function.prototype.bind()

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

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

答案 1 :(得分:-1)

是的,您只需将req和res作为参数传递给requestCallback()

即可