Подтвердить что ты не робот

'TypeError: не является функцией' в Node.js

Я получаю сообщение об ошибке при запуске следующего кода в Node.js

var assert = require('assert');
var request = require('request');
var index = require('./index');
it('verify javascript function', function(done){
            var v2 = index.AddNumbers(5,6);
            assert.equal(11, v2);
            done();         
        });

В файле index.js содержится следующий код:

function AddNumbers(a,b){
    return a+b;
}

Что я делаю неправильно?

4b9b3361

Ответ 1

Это происходило со мной много раз из-за круговой зависимости, проверьте, есть ли у вас 2 класса, которые требуют друг друга, удалите один из них из другого, и проблема должна быть решена.

Ответ 2

С NodeJS modules, чтобы сделать что-то публичное, вам нужно экспортировать его. Добавьте это в конец index.js:

module.exports.AddNumbers = AddNumbers;

Здесь он работает на моей машине:

$ cat index.js 
function AddNumbers(a,b){
    return a+b;
}

module.exports.AddNumbers = AddNumbers;

$ cat example.js 
var index = require('./index');
var v2 = index.AddNumbers(5,6);
console.log(v2);

$ node example.js
11