node.js中的可链接模块

时间:2017-09-17 06:27:16

标签: javascript node.js module chaining

我是node.js的新手。到目前为止,我已经创建了这个模块。

module.exports = function() {

    var groups = [];

    var Group = function(id) {
        this.id = id;
        this.users = [];
    };

    return {
        create: function(id) {
            var group = new Group(id);
            groups.push(group);
        },
        find: function(id) {
            var group = groups.find((element, index, array) => {
                return element.id === id;
            });
            return group ? group : null;
        },
        findIndex: function(id)  {
            var index = groups.findIndex((element, i, array) => {
                return element.id === id;
            });
            return index;
        },
        getAll: function() {
            return groups;
        },
        users: function(id) {
            var group = this.find(id);
            return group ? group.users : [];
        }
    };

};

我可以使用这样的模块:

var groups = require('./groups')();
groups.create(12);
console.log(groups.getAll());

但我希望在users中为groups实现相同的结构,以便我可以调用groups.find(12).users.add(user_id, 'some user')groups.find(12).users.remove(user_id)等。

我怎样才能实现这一目标?请帮忙。

0 个答案:

没有答案