如何基于变量加载对象或模块

时间:2016-10-09 19:24:50

标签: node.js

对于NodeJS来说还是个新手我想知道以下问题的最佳方法是什么。

我的主应用程序接受变量,包括device_typepayload。此payload需要解密的方式取决于device_type

避免使用大案例/开关或if子句,并且只需在需要时插入新设备;我正在寻找一种更面向对象的方法。

在PHP中,我会为每个设备创建一个类,然后加载'因此,他们使用装饰器从正确的命名空间。每个类都有一个decrypt()方法(使用契约强制执行)

我如何在nodejs中完成相同的结构?

1 个答案:

答案 0 :(得分:1)

嗯,正如您自己建议的那样,您可以将它们作为模块编写,然后根据您提到的设备类型包含它们。

假设您已经创建了模块并将它们放在适当的目录中

var decryptors = {
    device_type_1: 'decryptor_module_1',
    device_type_2: 'decryptor_module_2',
};

var decryptor = require(decryptors[input.device_type]);