节点模块提供getter&制定者

时间:2016-01-19 13:03:34

标签: javascript node.js require

我有以下代码正常工作。 现在我需要添加其他属性和功能并导出它们, 怎么建议这样做? 假设我有两个函数和两个需要导出的其他属性。

属性如 已验证 PROP1

  $mysqldate = date("Y-m-d H:i:s", strtotime($cc_expire));

3 个答案:

答案 0 :(得分:3)

在对象上定义setter和getter方法的标准方法是在Object.defineProperty模块中使用internal方法。通过导出internal模块,您也会导出settergetter方法。

Object.defineProperty(Internal.prototype, "isAvailable", {
    get : function(){
        return this.available;
    },
    set : function(value){
        this.available = value;
    }
});

或在ES6中,您可以编写相同的内容:

get isAvailable() {
    return this.available;
}

set isAvailable(value) {
    this.available = value;
}

使用Internal.prototype,您将使用setter和getter方法扩展基础对象原型。

答案 1 :(得分:0)

这是一种简单直接的方式。如果我误解了,请纠正我。 这将为需要此文件的每个人公开getter和setter。 除非你想在发生变化时发出变化,否则这可能不是答案。

var available = false;
module.exports = {
  getAvailable: getAvailable,
  setAvailable: setAvailable
}
function getAvailable() { return available;}
function setAvailable(avail) { available = avail;}

答案 2 :(得分:0)

使用以下代码,是否可以解决您的问题?

var exports = module.exports = {};

var internal = require("../plu/internal");

exports.isAvailable = false;

internal.eventEmitter.on('AppA', function () {
    exports.isAvailable = true;
});

exports.myTestFunc = function () {
     return "Hello Test";
}

exports.testProperty = true;