gpt4 book ai didi

javascript - 如何导出需要分配的 Node.js 模块

转载 作者:太空宇宙 更新时间:2023-11-03 22:37:23 24 4
gpt4 key购买 nike

我的情况是,我需要在索引文件中需要一个名为 Router 的模块,同时为该模块的变量赋值。

我想出了几种方法来实现它。然而,作为初学者,我想知道哪一个是最佳实践或设计以及为什么不能使用其他的。

方法 1 - 导出 setter 并将变量保留为“私有(private)”

路由器.js

var handler;
exports.setHandler=function(h){handler=h};
exports.route=function(){console.log(handler)}

index.js

var router=require('./router');
router.setHanlder('test');
router.route();

方法 2 - 让变量为“public”并使用“this”来引用

路由器.js

exports.handler={}; //not necessary
exports.route=function(){console.log(this.handler)}

index.js

var router=require('./router');
router.hanlder='test';
router.route();

方法 3 - 导出工厂函数以接收值作为参数

路由器.js

module.exports=function(handler){
return {route:function(){console.log(return handler)}};
}

index.js

var router=require('./router')('test');
router.route();

我应该使用上面哪一个?还有其他建议的方法吗?

最佳答案

我建议使用方法 3,它是回调;非阻塞代码。而且,这对我来说很接近自然!

关于javascript - 如何导出需要分配的 Node.js 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24616499/

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