将传递参数传递给异步中间件

时间:2019-08-19 13:12:53

标签: node.js express

我有一个同步中间件来授权角色。设置如下:

路线:

router.get("/test", [authorizeRole("tier1", "tier2")], function(req, res) {})

中间件:

module.exports = function authorizeRoles(...role) {
    return (request, response, next) => {
        //authorize
    };
};

这正在工作。现在,我想更改中间件以使其异步。

我不知道如何使中间件异步。我尝试过:

module.exports = async function authorizeRoles(...role) {
    return await (request, response, next) => {
        //authorize
    };
};

module.exports = async function authorizeRoles(...role) {
    return await async (request, response, next) => {
        //authorize
    };
};

但没有任何效果。

如何使中间件异步?

1 个答案:

答案 0 :(得分:1)

我不确定我是否完全理解您的问题。要使用await,您需要使用async关键字声明函数,这样就可以了

module.exports = function authorizeRoles(...role) {
    return async (request, response, next) => {
        // now you can use `await` here
    };
};