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

标签 javascript node.js

我的情况是,我需要在索引文件中需要一个名为 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/

相关文章:

javascript - 如何获取 JSON 字符串中的数据

python - 从python客户端发送加密消息到nodejs服务器

ruby-on-rails - 高性能 REST API - 哪种语言/堆栈?

javascript - 保持node.js列表的顺序

https - 如何在同一台机器上设置多个nodejs-https-服务器的https反向代理(许多域和证书,​​一个VPS和IP)

javascript - 如何在设计糟糕的网页中选择多个 ID?

javascript - imageScroll.js 视差背景图像

javascript - 检查项目是否存在于数组 React 中

javascript - 使用 Javascript DOM 根据条件选择元素

node.js - Visual Studio代码,调试不起作用