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我知道这是很久以前的事了,但你解决过这个问题吗?