2017-09-05 1 views
-1

Ich habe eine server.js, die wie folgt aussieht:Ist es in Ordnung, dieselbe Datei mehrmals() zu benötigen?

var app1 = require('./app1.js'); 
app1.start(); 

var app2 = require('./app2.js'); 
app2.start(); 

Jetzt habe ich eine common.js haben, die beide in in verwendet wird app1.js und app2.js.

So in app1.js ich habe:

var common = require('./common.js'); 

und in app2.js ich habe:

var common = require('./common.js'); 

Ich frage mich, ob dies in Ordnung ist, dies zu tun. Verwendet der Knoten in beiden Situationen die gleiche Referenz oder wird er dupliziert?

+0

Ja, das ist in Ordnung, und sie werden das gleiche Objekt sein (obwohl es im Allgemeinen nicht gut ist, auf diesen letzten Teil zu zählen). – Ryan

+0

@Ryan Warum sollte ich nicht auf diesen Teil zählen? Wenn das nicht das Verhalten wäre, würde der größte Teil des Internets zusammenbrechen. –

+0

Knoten Caches erfordert, so ist es wirklich egal, wie oft Sie es benötigen – adeneo

Antwort

1

Ja, es ist absolut in Ordnung, dies zu tun. require() enthält im Wesentlichen den Inhalt der Zielseite auf der aktuellen Seite. Wenn Sie die Module auf mehreren Seiten verwenden müssen, müssen Sie require() auf jeder Seite verwenden.

var common = require('./common.js') wird in der Variablen common führen genau die gleiche Struktur haben, was von module.exports in common.js zurückgeführt wird. In der Tat werden sie genau das gleiche Objekt sein.

Es gibt einige großartige Dokumentation diesbezüglich unter SitePoint.

Hoffe, das hilft! :)

0

Es ist in Ordnung. Sie verwenden jedoch die gleichen Referenzen, die von Knoten zwischengespeichert werden. Versuchen Sie daher nicht, die erforderlichen Dateien zu mutieren, indem Sie die Objekteigenschaften mutieren, da sonst ein unerwartetes Verhalten auftreten kann.

Verwandte Themen