Javascript 如何在节点模块中公开对象
我有一个模块正在使用解析(解析功能),其他模块应该查询这个解析器的值。 我的问题是Javascript 如何在节点模块中公开对象,javascript,node.js,module,require,Javascript,Node.js,Module,Require,我有一个模块正在使用解析(解析功能),其他模块应该查询这个解析器的值。 我的问题是 我应该如何构建它(设计方面) 哪个方法应该初始化解析器(调用它的第一个方法) 获取特定值) 这是从解析器返回两个对象的示例代码,但我认为这不是正确的方法,因为可能需要提供额外的属性 这是模块解析 parse = function (data) { var ymlObj = ymlParser.parse(data); return { web: ymlOb
parse = function (data) {
var ymlObj = ymlParser.parse(data);
return {
web: ymlObj.process_types.web,
con: ymlObj.con
}
};
如果我没弄错的话,你可以用getter和setter创建一个简单的模块 (parse.js) (parseUser.js) (app.js) 您仍然需要做一些基础工作,比如处理异常,但希望这能帮助您理解基本结构 init的作用实际上取决于何时要初始化(获取?)数据以及数据来自何处。您可以设置时间戳来指示数据的年代,并决定是否仍然依赖它或获取较新的数据。或者,您可以注册来自用户模块的回调,以便在每次获取新数据时处理新数据
因此,如何设计模块取决于您自己。;) 感谢1+一个问题:为什么要使用原型?请解释一下,这是因为在javascript中,每个声明的(新的)对象都继承自其原型。要更好地理解,请阅读以下内容:
var ymlObj = {};
function Parse() {}
Parse.prototype.setData = function (data) {
ymlObj = data;
}
Parse.prototype.getWeb = function () {
return ymlObj.process_types.web;
}
Parse.prototype.getCon = function () {
return ymlObj.con;
}
module.exports = new Parse();
var parse = require('./parse.js');
function ParseUser() { }
ParseUser.prototype.useParse = function () {
console.log(parse.getCon());
}
module.exports = new ParseUser();
var parse = require('./parse.js');
var parseUser = require('parseUser.js');
parse.setData({ ... });
parseUser.useParse();