繁体   English   中英

从Express.js路由堆栈中删除路由器

[英]Remove Router From Express.js Route Stack

我有一个Express.js项目,允许在运行时加载和卸载插件。 插件可以访问Expess.js路由器堆栈来注册其路径,就像普通脚本一样:

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堆栈中删除完整路由器对象的正确方法? 我可以使用它们的名称来做单独的中间件,但是使用如本示例所示的路由,该名称只是堆栈中的“路由器”。

我通过使用命名函数技巧来解决此问题,以采用匿名函数并将其转换为命名函数。 这样,我便可以删除路由器的名称了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM