objektorientierte Programmierung in node js

Ich habe eine grundlegende Frage wie folgt:

Ich habe 2 separate Module main.js und logger.js im selben Verzeichnis. die logger.js ist einfach:

function Logger(){
    return this;
};

Logger.prototype.log = function(str) {
    console.log('[' + this.mPrefix + ']' + str);
};

Logger.prototype.init = function(pr){
    this.mPrefix = pr;
}
module.exports = Logger;

Nun, ich will mein logger im main-Modul wie dieses:

var logger = require('./logger.js');
logger.init('MAIN');

logger.log('foo');

Aber Knoten besteht darauf, dass Logger hat keine Methode mit dem Namen init oder log. Ich habe auch versucht require('./logger.js')(), da bin ich übergeben Sie eine Funktion die Rücksendung selbst-Objekt, aber es hat nicht geholfen. Was ist die beste Praxis für die Objekte definieren, die in anderen Modulen und Sie zu exportieren? Durch die Art und Weise, geschieht Es, um durch dies zu tun:

var logger = require('./logger.js');
var l = new logger();
l.init('MAIN');
l.log('bar');

Aber es scheint ungeschickt zu mich. Alle Erklärungen & Vorschläge?

InformationsquelleAutor px5x2 | 2013-09-29
Schreibe einen Kommentar