2016-07-20 5 views
1

Ich habe zwei Dateien in meinem Javascript Projekt:Wie kann man über require, import und packages reden?

app.js

require('sugar') 
var Notification = require('./notification'); 

let createdOn = 'now' 
let notifyOn = 'in 2 days' 
let someNotification = new Notification('go somewhere', Date.create(createdOn), Date.create(notifyOn)) 
someNotification.print() 

notification.js

function Notification(content, createdOn, notifyOn) { 
    this.content = content 
    this.createdOn = createdOn 
    this.notifyOn = notifyOn 
} 

Notification.prototype.print = function() { 
    console.log('content', this.content) 
    console.log('createdOn', this.createdOn) 
    console.log('notifyOn', this.notifyOn) 
} 

module.exports = Notification 

in notification.js Ich glaube, ich "mein eigenes Modul zu schreiben", dass " exportiert einen Konstruktor "zu dem, was es benötigt. Dann in app.js Ich "importiere meine das Benachrichtigungsmodul", die im selben Arbeitsverzeichnis wie app.js ist. Ich "importiere auch das Zuckerpaket", also kann ich natürliche Sprache in ein DateTime umwandeln, siehe Sugar.js für Details darüber.

Als Nächstes "erstelle ich eine Instanz von Notification" und rufe eine seiner "Instanzmethoden" auf.

Ich frage mich: Was ist der Knoten-Weg, um alles oben zu sagen, vor allem die Teile in Anführungszeichen? Insbesondere über Ich bin verwirrt, wie genau über einen Konstruktor zu sprechen, und Prototyp-Funktionen und der Unterschied, was zwischen diesen beiden Linien:

require('sugar') 
var Notification = require('./notification'); 

ich nach einer Antwort suchen, die Knoten Idiome verwenden, erklärt ich, was ich in meinem Projekt gemacht habe.

Dank

Antwort

2

Es gibt keine dokumentierten Standardknoten Idiom-sprechen. Ihre Erklärung ist ziemlich genau das, was Sie tun, was jeder Knotenentwickler verstehen würde. Hier ist die kürzeste Knoten Phrasierung ich mich vorstellen kann:

erfordern ('Zucker')

Last des Zucker Modul

var Mitteilung = require ('./-Mitteilung) ;

Last das Benachrichtigungsmodul aus dem Verzeichnis des aktuellen Moduls und die Ausfuhren einer Variablen Notification

notification.js

Ein Modul namens zuweisen, die eine Konstruktionsfunktion zum Erstellen von Objekten Notification exportiert .


was ist der Unterschied zwischen diesen beiden Linien:

require('sugar') 
var Notification = require('./notification'); 

Der Zucker-Modul kann ohne Zuweisung seine Ausfuhren in jede Variable verwendet werden, weil die Hauptsache es tut Methoden ist in den die vorhandenen Date und Number Prototyp (im Allgemeinen als "ein vorhandenes Objekt zu erweitern") und Sie verwenden viele seiner Funktionen durch Zugriff auf Methoden wie Date.create(), die es hinzugefügt.

So wird seine Funktionalität zu Objekten hinzugefügt, die bereits existieren und so nutzen Sie seine Funktionalität. Dies ist nicht besonders häufig - mir ist kein spezifischer Name für ein Modul bekannt, das auf diese Weise geladen wird.

Als nächstes "erstelle ich eine Instanz der Benachrichtigung" und einen der seine "Instanz Methoden" aufrufen.

Das ist schon ein Knoten-Weg, es zu sagen.

Verwandte Themen