У меня есть проект Express.js, где я разрешаю загружать и выгружать плагины во время выполнения. Плагины имеют доступ к стеке маршрутизатора Expess.js зарегистрировать свои пути так же, как обычный скрипт будет такими как:Remove Router From Express.js Route Stack
var express = require('express');
var router = express.Router();
module.exports = function(projectCoreObject) {
function Plugin() { }
// Plugin initialize called when a plugin is loaded.
Plugin.Initialize = function (done) {
// Register the router..
projectCoreObject.app.use('/', router);
};
// GET - /test
router.get('/test', function(req, res, next) {
res.send('Success!');
});
return Plugin;
};
В то время как это все прекрасно работает, у меня есть проблемы с разгрузкой плагин удаляя их маршрутизатор из стека.
Есть ли способ удалить полный объект маршрутизатора из стека Express.js во время выполнения? Я могу использовать индивидуальное промежуточное программное обеспечение, используя их имена, но с указанием маршрута, как показано в этом примере, это имя просто «маршрутизатор» в стеке.
Я не верю, что есть поддерживаемый способ сделать это. В реализации приложения (который использует внутренний маршрутизатор) существует множество маршрутов. Вам нужно будет найти нужную запись в этом массиве и использовать '.splice()', чтобы удалить ее из массива. – jfriend00
Возможно, вам стоит посмотреть на socket.io. – nottinhill
Это не имеет никакого отношения к socket.io ... – atom0s