2017-05-06 1 views
0

verwendet werden, wenn im Rahmen einer NodeJS Datei, gibt es verschiedene Verschlüsse:Best place Module erfordern, die nicht nur in Schließungen

const Library2 = require('Library2'); // should it be here? 

doSomething().then(()=>{ 
    const Library1 = require('Library1'); // or here? 
    return Library1.doSomething(); 
}).then(()=>{ 
    return Library2.doSomething(); 
}).then(...) // etc. 

Wäre es zu require Library1 und Library2, in denen in den Bereichen besser sein, sie werden verwendet? Oder an der Spitze der Datei wie die meisten?

Macht es einen Unterschied, wie viel Speicher in beide Richtungen verbraucht wird?

Antwort

3

Am besten laden Sie alle zum Serverstart benötigten Module.

Wenn ein Modul zum ersten Mal geladen wird, wird es mit blockierender, synchroner E/A geladen. Es ist schlecht, während der Laufzeit blockierende, synchrone E/As für Ihren Server zu verwenden, da dies die Fähigkeit Ihres Servers beeinträchtigt, mehrere Anforderungen gleichzeitig zu verarbeiten und die Skalierbarkeit zu reduzieren.

Module geladen mit require() sind im Cache so zum Glück, versucht require() in einem Modul in der Mitte eines Request-Handler wirklich nur Leistung tut die allererste Mal die Anfrage ausgeführt wird.

Aber es ist immer noch am besten, irgendwelche Module in Ihrem Startup-Code und NICHT während der Runtime-Request-Behandlung Ihres Servers zu laden.

Verwandte Themen