[英]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.