2016-04-16 11 views
2

app.jsファイルの先頭にすべてのノードモジュールが必要な習慣がありました。ファイルの先頭にノードモジュールが必要

var express=require('express'), 
bodyParser = require('body-parser'), 
cookieParser = require('cookie-parser'), 
compression = require('compression'), 
. 
. 

ただし、一部のモジュールは単一の機能で単一のジョブに使用されるため、最初から削除してインラインに配置できます。

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= ...... 
. 
. 

代わりの

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= ...... 
. 
. 

私の質問:これらの優れたパフォーマンスを提供しますか?モジュールのキャッシュの概念は、内部のNode.js

答えて

1

は言う:

モジュールは、彼らがロードされた最初の時間の後にキャッシュされます。これは、 (他のものの中でも)が、同じ ファイルに解決される場合、 が返されたものと全く同じオブジェクトを得ること( 'foo')を呼び出すことを意味します。

ドキュメントがここmodules_caching

を見ることができますそれはrequireのどちらかの選択は、コーディングスタイルのちょうど別の方法であることを意味します。

0

require機能は同期動作です。これはブロックしていることを意味します。プログラムが実行されている間に呼び出しをブロックしないように、ファイルの先頭で使用する方がよいでしょう。モジュールがすでにrequiredである場合、そのモジュールはキャッシュされ、操作はブロックされません。しかし、ほとんどの場合、モジュールの上にrequireを使用することをお勧めします。このようにして、副作用のない関数内にrequireを使用するためにキャッシュされたモジュールを追跡する必要はありません。

関連する問題