首页 > 解决方案 > SDK API 命名空间设计

问题描述

我喜欢像这样的命名空间来实现这样的例子:

const { SMS } = require('./custom-sdk')

const list = SMS.List();
let data = list.getData("ABC");

console.log(data)

我完全不知道如何实现这一点,我需要做什么来设计这种 API 方法。

我试过这样会在custom-sdk.js文件中:

module.exports = {
    SMS: function() {
        // ...
    }
};

标签: javascriptnode.js

解决方案


像下面的嵌套工作吗?

module.exports = {
    SMS: {
        List: function() {
            return {
                getData: function(arg) {
                    // get that data
                }
            }
        }
    }
};

我认为这会让你这样做SMS.List().getData('ABC')。也就是说,这似乎过于嵌套,除非您只是为 SO 问题简化了它。我建议仅在必要时使用函数(获取参数或实例化服务),并尽可能只使用普通对象:

module.exports = {
    SMS: {
        List: {
            getData: function(arg) {
                // get that data
            }
        }
    }
};

推荐阅读