我正在使用Express,我想在运行时替换中间件(停止运行中间件X并开始运行中间件Y(。 我找到了一种简单的方法,但这里没有人将其作为一种选择:
xMiddleware不使用第一个中间件:
app.use(xMiddleware);
我正在用另一个中间件MyMiddlewareWrap包装它:
MyMiddleware = xMiddleware;
MyMiddlewareWrap = function (req, res, next)
{
MyMiddleware(req, res, next)
}
app.use(MyMiddlewareWrap);
然后,当我想停止运行 xMiddleware 并开始运行 yMiddleware 时,我将 yMiddleware 分配给 MyMiddleware:
MyMiddleware = yMiddleware;
结果,xMiddleware不再运行,而yMiddleware正在运行。 有人认为它有问题吗?这是一个好的解决方案吗?
在阅读您的问题时,我完全想到了您的解决方案。
是的,它应该毫无问题地达到预期的结果。