Я не понимаю, почему он не видит функцию сумматора из модуля в файле с именем modulefile1.

Вот код, написанный в файле с именем modulefile1:

var adder = function(a, b) {
  return 'the sum of the two number is ${a + b}'
}
module.exports.adder = adder;

В другом файле, в котором я пытаюсь использовать функцию из модуля:

var stuff = require('./modulefile1');
console.log(stuff.adder(1,2));

Я получаю сообщение об ошибке: TypeError: stuff.adder не является функцией

0
yara raffoul 3 Май 2019 в 13:49

3 ответа

Лучший ответ

Ваш фрагмент работает нормально. Вы сохранили это?

Riajul & NullDev не экспортируют функцию сумматора, но экспортируют функцию сумматора как экспорт по умолчанию.

Проверьте разницу между именованным экспортом и экспортом по умолчанию.

2
RajmondX 3 Май 2019 в 10:57

Используйте этот фрагмент и запустите снова, спасибо

var adder = function(a, b) {
    return 'the sum of the two number is ${a + b}'
}
module.exports = adder;
1
Riajul Islam 3 Май 2019 в 10:51

Если вы хотите использовать свой модуль, как:

moduleName.function() вместо moduleName() вы можете экспортировать литерал объекта:

var adder = function(a, b) {
    return `the sum of the two number is ${a + b}`;
};
module.exports = {
    adder
};

Если это не имеет значения, используйте подход @Riajul Islam с

module.exports = adder;
1
NullDev 3 Май 2019 в 10:53