如何从节点中的module.exports链调用函数

时间:2016-05-19 14:18:04

标签: javascript node.js express

我在我的一个模型(review)中声明了一个函数,并以标准节点方式导出它,以便其他文件可以使用它。然后我引用另一个模型(company)并将其导出。

最后,我正在尝试在另一个文件(company)中使用companiesRoute中定义的函数,但我收到company.getAllCompaniesWithReviews is not a function错误。

我正在尝试做什么?

// review.js
module.exports.getAllCompaniesWithReviews = function(next) {
  // ...
  // ...
  // ...
};

// company.js
var reviews = require('./review');
module.exports.getAllCompaniesWithReviews = reviews.getAllCompaniesWithReviews;

// companiesRoute.js
var company = require('../models/company');
company.getAllCompaniesWithReviews(function(err, result) {
  // ...
  // ...
  // ...
});

如果我尝试直接从companiesRoute调用该函数,那么它可以工作:

review.getAllCompaniesWithReviews(function(err, result) {
  // ...
  // ...
  // ...
});

这当然是答案。但为什么我的版本不起作用?

此外,节点v4.4.4。

1 个答案:

答案 0 :(得分:1)

你可以在company.js中试试吗?

module.exports.getAllCompaniesWithReviews = function(next) { 
     reviews.getAllCompaniesWithReviews(next);
}