2016-04-16 7 views
2

Ich hatte eine Angewohnheit, alle meine Knotenmodule am Anfang der app.js-Datei zu erfordern.erfordern Knotenmodule am Anfang der Datei

Aber einige Module werden für einzelne Aufträge in einer einzigen Funktion verwendet, so dass ich diese von Anfang an entfernen und inline platzieren kann.

var express=require('express'), 
bodyParser = require('body-parser'), 
cookieParser = require('cookie-parser'), 
compression = require('compression'), 
. 
. 
function myfunc(){ 
require('https').get("https://www.google.com/recaptcha/api/siteverify?secret= ...... 
. 
. 

statt

var express=require('express'), 
bodyParser = require('body-parser'), 
cookieParser = require('cookie-parser'), 
compression = require('compression'), 
https=require('https'), 
. 
. 
function myfunc(){ 
https.get("https://www.google.com/recaptcha/api/siteverify?secret= ...... 
. 
. 

Meine Frage: Welche von diesen gibt eine bessere Leistung?

Antwort

1

Module Caching-Konzept innerhalb node.js sagt:

Module nach dem ersten Mal zwischengespeichert werden sie geladen werden. Das bedeutet (unter anderem), dass jeder Aufruf zu fordern ('foo') genau das gleiche Objekt zurückgegeben wird, wenn es in derselben Datei aufgelöst werden würde.

Dokumentation kann hier gesehen werden modules_caching

Es bedeutet entweder Wahl von require ist nur anders Art der Codierung.

0

Die Funktion require ist ein synchroner Vorgang. Was bedeutet, dass das Blockieren ist. Es ist besser, es am Anfang der Datei zu verwenden, um zu verhindern, dass Anrufe blockiert werden, während das Programm ausgeführt wird. Wenn ein Modul bereits required ist, wird es zwischengespeichert, sodass der Vorgang nicht blockiert wird. In den meisten Fällen ist es jedoch vorzuziehen, require oben auf Ihrem Modul zu verwenden. Auf diese Weise müssen Sie nicht die Module im Auge behalten, die zwischengespeichert wurden, um require innerhalb einer Funktion ohne Nebenwirkungen

zu verwenden