Можно ли получить доступ к другим функциям экспорта модулей в одном файле?

У меня есть две функции в одном файле, оба из которых доступны извне. Одна из функций вызывается второй.

module.exports.functionOne = function(param) {
    console.log('hello'+param);
};

module.exports.functionTwo = function() {
    var name = 'Foo';
    functionOne(name);
};

Когда это выполняется, вызов функцииOne помечен как не определенный.

Какой правильный способ ссылаться на него?

Один шаблон, который я нашел, работает, ссылаясь на сам файл.

var me = require('./thisfile.js');
me.functionOne(name);

... но похоже, что должен быть лучший способ.

Ответ 1

Просто module.exports.functionOne().

Если это слишком громоздко, просто выполните следующее:

function fnOne() {
    console.log("One!");
}

module.exports.fnOne = fnOne;

Ответ 2

var me = require(module.filename);
me.functionOne(name);

или просто использовать сам объект экспорта

module.exports.functionOne(name);

Ответ 3

Я предполагаю, что я думал, что требование эквивалентно включению, импорту и т.д. Если есть другой способ, это может быть интересно увидеть. Я все еще мочу за ушами node.

Джеймс Хердманс Понимание node.js "требует" действительно помогло мне, когда дело дошло до помощи в организации кода. Его определенно стоит посмотреть!

// ./models/customer.js
Customer = function(name) {
  var self = this;
  self.name = name;

};

// ./controllers/customercontroller.js
require("../models/customer");

CustomerController = function() {
  var self = this;

  var _customers = [
   new Customer("Sid"),
   new Customer("Nancy")
  ];
  self.get() {
   return _customers;
  }
};