节点模块提供作为获取者和设置者

我有以下代码工作正常。 现在我需要添加额外的属性和function,并导出它们,build议如何做? 可以说我有两个函数和两个额外的属性,我需要导出。

属性如isValid prop1

var internal = require("../plu/internal"); module.exports = {isAvailable: false}; internal.eventEmitter.on('AppA', function () { module.exports.isAvailable = true; }); 

在对象上定义setter和getter方法的标准方法是在internal模块中使用Object.defineProperty方法。 通过导出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方法扩展基础对象原型。

这是一个简单直接的方法。 纠正我,如果我误解了。 这将为需要该文件的每个人公开获取者和设置者。 除非你想在发生变化时发出改变,否则这可能不是答案。

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

使用下面的代码,如果它可以解决你的问题?

 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;