2015-11-23 34 views
13

Tôi nhận được lỗi khi chạy đoạn mã sau vào Node.js'Lỗi Loại: không phải là một chức năng' trong 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();   
     }); 

File index.js chứa đoạn mã sau:

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

Tôi đang làm gì sai?

+3

@ckruczek: Đó là một điều văn hóa/ESL, không có nghĩa là thô lỗ, mặc dù nó được viết bằng tiếng Anh. Tôi đã thay thế nó bằng một cái gì đó thích hợp hơn * (er, tôi hy vọng) *. –

Trả lời

13

Với NodeJS modules, để đặt nội dung nào đó ở chế độ công khai, bạn phải xuất. Thêm phần này vào cuối index.js:

module.exports.AddNumbers = AddNumbers; 

Ở đây nó đang chạy trên máy tính của tôi:

 
$ 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

Tôi đã thử dòng trên vẫn còn tôi nhận được lỗi tương tự. –

+0

@KarthickGk: Sau đó, một cái gì đó khác là sai, các công trình trên. –

+0

Cảm ơn rất nhiều công việc của nó tốt. –

24

Điều này xảy ra với tôi nhiều lần vì phụ thuộc vòng tròn, kiểm tra xem bạn có 2 lớp đang yêu cầu lẫn nhau, xóa một trong số họ khỏi yêu cầu người khác và vấn đề cần được giải quyết

+0

Bạn đã cứu tôi hôm nay :) – arslan

+0

Bạn đã tiết kiệm cho tôi số giờ đập đầu vào tường. Cảm ơn bạn! – mephisto123

Các vấn đề liên quan