Node.js:从导出进行内部调用

Node.js: Making internal calls from exports

本文关键字:内部 调用 js Node      更新时间:2023-09-26

假设我的一个模块中有以下代码:

var _this = this;
exports.getData = function(res) {
  res.json({someData:'Data'});
};

现在,我想在我的模块中制作另一个使用getDataexports函数。基本上以某种方式制造出这样的东西:

exports.getMoreData = function(res) {
  $.nodeInternalCall({url: _this.getData()}).done(function(data) {
    res.json({newData: data.someData * 10})
  })
};

有办法做到这一点吗?除非这在节点D:中没有意义

有几种方法可以做到这一点;最简单的是简单地将其字面上称为exports.getData:

exports.otherFunction = function(res) {
    return exports.getData(res);
};

您也可以将函数分配给一个变量,以便在其他函数中方便引用。

var getData = exports.getData = function(res) {};
exports.otherFunction = function(res) {
    return getData(res);
};

第一种方法的优点是,函数的定义顺序无关紧要(只要在定义另一个函数之前不调用依赖于该函数的函数)。

第二种方法的优点是键入时间更短,如果您后来改变主意,决定不将函数作为模块的一部分公开,则可以删除exports.getData =,而无需重构其余所有代码。