Не поддерживается Express API для удаления предыдущей установленной функции промежуточного программного обеспечения, поэтому вы можете переустановить ее.
Для этого вам придется взломать Express, чтобы удалить это промежуточное программное обеспечение из его внутреннего массива маршрутизации..
Альтернативной реализацией будет прокси промежуточного программного обеспечения, чтобы вы могли затем контролировать то, что на самом деле называется.
// initial value of middleware
let currentMiddleware = myMiddleware{ option1: '1', option2: '2' });
// my middleware proxy
app.use(function(req, res, next) {
// call currently indicated middleware function
currentMiddleware(req, res, next);
});
Затем, на каком-то будущем событии:
// change middleware that is called via currentMiddleware
// this new middleware will be used on all future requests
currentMiddlware = myMiddleware({ option1: '100', option2: '200' });
Имейте в виду, что это глобальное изменение на сервере для ВСЕХ будущих запросов от всех пользователей.Таким образом, довольно необычно менять конфигурацию живого сервера для всех пользователей.
Если вы действительно хотите, чтобы изменение затронуло будущие запросы от одного пользователя, то для этого потребуется совершенно другая реализация.Вы все еще можете использовать вышеупомянутый дизайн прокси, но вы будете использовать логику ветвления, чтобы решить (возможно, на основе некоторого состояния в пользовательской переменной сеанса), какое промежуточное программное обеспечение выполнять для каждого данного запроса.