2012-05-18 33 views
8

Tôi có hai hàm trong cùng một tệp, cả hai đều được truy cập từ bên ngoài. Một trong các hàm được gọi là thứ hai.Có thể truy cập các chức năng xuất mô-đun khác trong cùng một tệp không?

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

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

Khi điều này được thực hiện, lệnh gọi hàm isOne bị gắn cờ là không được xác định.

Cách nào phù hợp để tham khảo?

Một mẫu mà tôi đã tìm được để làm việc là bằng cách tham chiếu chính tệp đó.

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

... nhưng có cảm giác như phải có cách nào tốt hơn.

Trả lời

16

Chỉ cần đơn giản là module.exports.functionOne().

Nếu đó là quá rườm rà, chỉ cần làm như sau:

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

module.exports.fnOne = fnOne; 
0

Tôi đoán Tôi đã nghĩ đến việc yêu cầu là tương đương bao gồm, nhập khẩu, vv Nếu có một cách khác xung quanh nó, nó có thể thật thú vị khi thấy nó. Tôi vẫn còn ướt sau tai với nút.

James HerdmansUnderstanding Node.js "require" bài đăng thực sự đã giúp tôi khi đến với việc giúp tổ chức mã. Nó chắc chắn đáng xem!

// ./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; 
    } 
}; 
3
var me = require(module.filename); 
me.functionOne(name); 

hoặc chỉ sử dụng xuất khẩu đối tượng tự

module.exports.functionOne(name); 
Các vấn đề liên quan