Node.js 将参数快速传递给异步中间件

Node.js 将参数快速传递给异步中间件,node.js,express,Node.js,Express,我有一个同步中间件来授权角色。它是这样设置的: 路线: router.get("/test", [authorizeRole("tier1", "tier2")], function(req, res) {}) 中间件: module.exports = function authorizeRoles(...role) { return (request, response, next) => { //authorize }; }; 这是有效的。现在我想

我有一个同步中间件来授权角色。它是这样设置的:

路线:

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
    };
};
但什么都不管用


如何使中间件异步?

我不确定我是否完全理解您的问题。要使用
await
,您需要使用
async
关键字声明函数,因此这应该是可行的

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

是的,我得到了“route.get()需要回调函数,但得到了[object Promission]”您需要将
异步函数authorized Roles
替换为
函数authorizeRoles
?这是可行的,谢谢,但是现在“wait”-块在路由器函数中的代码完成之前不会被解析。。strange@Tobol我知道这是很久以前的事了,但你解决过这个问题吗?