gpt4 book ai didi

node.js - 无需在 Nodejs Express 中预加载模块即可组织路由

转载 作者:太空宇宙 更新时间:2023-11-04 01:12:33 25 4
gpt4 key购买 nike

目前Express框架中的路由需要先加载模块。但这在有数百个模块的现实场景中效率不高。我想只加载需要的模块。有没有一种方法可以在不预加载模块的情况下定义到目标模块的路由。

类似这样的事情

app.get('user/showall', 'user.list');

所以我希望仅当特定请求需要加载用户模块时才加载它。

最佳答案

我宁愿慢速启动和快速请求处理,也不愿快速启动和慢速请求处理,因为模块必须在运行时加载。

但是如果您确实想要,您可以创建一个中间件来实现此类行为(完全未经测试):

 var lazyload = function(route) {

var s = route.split('.');
var mod = s[0];
var exp = s[1];

return function(req, res, next) {
require(mod)[exp](req, res);
};
};
...
app.get('user/showall', lazyload('user.list'));

(假设路由始终命名为 MODULENAME.EXPORTEDNAME)。

关于node.js - 无需在 Nodejs Express 中预加载模块即可组织路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15130700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com