2015-11-23 29 views
13

Dostaję błąd podczas wykonywania następujący kod w node.js„TypeError: nie jest funkcją” w 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();   
     }); 

Plik index.js zawierać następujący kod:

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

Co robię źle?

+3

@ckruczek: Jest to coś z ESL/kultury, to nie jest niegrzeczne, pomimo tego, jak to się mówi w języku angielskim. Zastąpiłem ją czymś bardziej odpowiednim * (mam nadzieję, że tak) *. –

Odpowiedz

13

W przypadku NodeJS modules, aby coś było publiczne, należy je wyeksportować. Dodaj to do końca index.js:

module.exports.AddNumbers = AddNumbers; 

Tu jest uruchomiony na moim komputerze:

 
$ 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 
+0

Próbowałem powyższej linii nadal otrzymuję ten sam błąd. –

+0

@KarthickGk: Coś jeszcze jest nie tak, powyższe działa. –

+0

Wielkie dzięki, teraz działa dobrze. –

24

To zdarzyło mi się wiele razy z powodu okrągłej uzależnienia, sprawdź czy masz 2 klasy Wymagają się nawzajem, usuwają jedną z nich, a drugą należy rozwiązać.

+0

Uratowałeś mnie dzisiaj :) – arslan

+0

Uratowałeś mi godziny na uderzanie głową w ścianę. Dziękuję Ci! – mephisto123

Powiązane problemy