2016-08-20 3 views
-1

Ich habe Modul Helfer die Dateien wie Inhalt enthält, Benutzer und ähnlich für verschiedene Helfer definieren in Router verwendet werden. Hier ist der Router:einschließlich der Funktionen von Helfer auf der Grundlage ihrer Art in Knoten

router.js

var helper = require("./helper"); 

function index(response) { 
    response.writeHead(200, {"Content-Type": "text/html; charset=utf-8"}); 
    response.write("<something>"); 
    response.end(); 
} 

Helfer/index.js

var content = require("./content"); 
var user = require("./user"); 
var post = require("./post"); 
... 

Jetzt will ich so etwas wie dies in Router tun:

response.writeHead(200, Content.html()); 

ersetzen langer Hash. Gibt es einen einfachen Weg, dies ohne Klassen zu tun (weil ich immer Objekt initialisieren muss, wenn ich einige Funktionen von helper verwenden möchte)? Ich weiß, dass ich nur

tun können
exports.html = content.html; 

Und verwenden html() stattdessen aber ich bin interessiert, wenn es eine Möglichkeit gibt es, wie dies zu tun?

+1

Ich verstehe Ihre Frage nicht. Was ist falsch daran, es einfach zu exportieren? –

+0

@Gothdo Ja, es sieht etwas kompliziert aus - denn wenn ich die Funktion mit dem gleichen Namen irgendwo habe, muss ich den Namen ändern. Auf diese Weise kann ich sowohl Content.html() als auch Post.html() schreiben. Sie wissen, etwas wie Namespace in anderen Sprachen. – Nikola

Antwort

0

Bezeichner, die mit einem Großbuchstaben beginnen (wie Content), sollten nur für Klassen verwendet werden.

Warum nicht helper/index.js loswerden und die gewünschten Module direkt importieren?

const content = require('./helper/content') 

function index(response) { 
    response.writeHead(200, content.html()); 
    response.write("<something>"); 
    response.end(); 
} 
Verwandte Themen