node.js导出方法facade设计模式
node.js exporting methods facade design pattern
我正试图在node.js应用程序中遵循facade设计模式,其中我有一个对象,该对象与名为controller.js的应用程序的其余部分一起用作facade。控制器控制对对象user.js、animal.js和house.js的调用,这些对象都是单独的文件。
在controller.js中,我做
var housecontroller = require("./controllers/housecontroller");
...
我想在另一个文件(客户端)中调用类似controller.getHouse()
的东西。我如何做到这一点,而不必调用housecontroller.getHouse()
?
我的每个控制器的格式如下
module.exports = {
getHouse:function(){...},
...
}
我有点困惑于如何正确地出口东西才能让它发挥作用。我在controller.js中导入/导出控制器及其方法,如下所示
module.exports = {
getHouse : housecontroller.getHouse,
...
};
我在例子中只使用了房子,但这意味着我对用户和动物也使用了同样的方法,它们都有几种方法。在客户端中,我只导入controller.js并使用它的方法。
var controller = require("./controller");
controller.getHouse();
根据您的代码/命名,您可以在controllers文件夹中有一个类似的文件controller.js
var housecontroller = require('./housecontroller');
var carcontroller = require('./carcontroller');
module.exports = {
getHouse: housecontroller.controller,
getCar: carcontroller.controller
};
客户端代码可以是:
var controller = require('./controllers/controller');
controller.getHouse();
我添加了carcontroller作为扩展示例。
如果每个控制器只能提供一个功能,您可以将代码和以下示例更改为:
//housecontroller.js
module.exports = getHouse;
//controller.js
var housecontroller = require('./housecontroller');
var carcontroller = require('./carcontroller');
module.exports = {
getHouse: housecontroller,
getCar: carcontroller
};
尽管我不推荐它,因为您正在减少在未来中提供该模块更多功能的机会
相关文章:
- 用于操纵DOM API的Javascript设计模式
- 用于多个选项卡和模块化的knockoutjs设计模式
- 自动化设计模式c++
- jQuery自动完成标记新的标签设计模式
- 有没有一种方法可以在设计模式下将ng模型或工厂绑定到iframe
- Javascript MVVM 设计模式 - 如何跟踪脏状态以及谁应该做 Ajaxing
- 包含 2 个或更多对象的页面上的 JavaScript 设计模式
- 在 Node 中.js释放 zalgo 的设计模式为什么异步路径是一致的
- Django设计模式-在加载时填充客户端JavaScript变量的方法
- Javascript策略设计模式问题
- 用于处理带有promise的外部接口中的参数的设计模式
- angularjs设计模式和从服务器获取数据的最佳实践
- JavaScript设计模式的建议
- 这种设计模式什么时候才能打破
- JavaScript设计模式,一个函数正在被覆盖
- BIRT报告在设计模式下导出到XLSX,但在运行时不导出
- 通量/反应设计模式
- 它是什么样的Javascript设计模式/方法
- 火狐浏览器 iframe 设计模式不起作用
- node.js导出方法facade设计模式