2012-05-18 10 views
8

Ho due funzioni nello stesso file, entrambe accessibili esternamente. Una delle funzioni è chiamata dal secondo.È possibile accedere ad altre funzioni di esportazione del modulo all'interno dello stesso file?

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

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

Quando viene eseguito, la chiamata a functionOne viene contrassegnata come non definita.

Qual è il modo corretto di fare riferimento?

Uno schema che ho trovato utile è fare riferimento al file stesso.

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

... ma ci si sente come ci deve essere un modo migliore.

risposta

16

Semplicemente module.exports.functionOne().

Se questo è troppo ingombrante, basta effettuare le seguenti operazioni:

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

module.exports.fnOne = fnOne; 
0

Credo che ho pensato di richiedere è un equivalente di includere, importazione, ecc Se c'è un altro modo intorno ad esso, potrebbe essere interessante vederlo Sono ancora bagnato dietro le orecchie con il nodo.

James HerdmansUnderstanding Node.js "require" post mi ha davvero aiutato quando si trattava di aiutare con l'organizzazione del codice. Vale sicuramente la pena dare un'occhiata!

// ./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); 

o semplicemente utilizzare le esportazioni stesso oggetto

module.exports.functionOne(name); 
Problemi correlati