ノード基本モジュール

1889 ワード

基本モジュールはノードのためです.jsはサーバ側で実行するJavaScript環境であり、サーバ環境はブラウザプログラムと比較して最大の特徴はブラウザのセキュリティ制限がないことである.また、サーバプログラムはネットワーク要求を受信し、ファイルを読み書きし、バイナリコンテンツを処理しなければならないのでNode.jsに内蔵常用モジュールは基本的なサーバ機能を実現するためであり、これらのモジュールはブラウザ環境では実行できない.彼女たちの下位コードはC/C++でノードであるからである.js運転環境で実現する.Globalは前のJavaScriptコースで、JavaScriptにはグローバルオブジェクトが1つしかなく、ブラウザではwindowオブジェクトと呼ばれ、Node.js環境には、唯一のグローバルオブジェクトもありますが、windowではありません.globalというオブジェクトの属性や方法もブラウザ環境のwindowとは異なり、Nodeに入ります.jsインタラクティブ環境は、直接入力できる:process processもNodeである.jsは現在のノードを表すオブジェクトを提供する.jsプロセスは、Processオブジェクトを介して多くの有用な情報を得ることができます.
> process === global.process;
true
> process.version;
'v5.2.0'
> process.platform;
'darwin'
> process.arch;
'x64'
> process.cwd(); //        
'/Users/michael'
> process.chdir('/private/tmp'); //         
undefined
> process.cwd();
'/private/tmp'

JavaScriptプログラムはイベントドライバによって実行される単一スレッドモデルである.jsも例外じゃないjsは応答イベントのJavaScript関数を実行し続け、応答イベントの関数が実行できないまでNode.jsは終了します.次のイベント応答でコードを実行したい場合はprocessを呼び出すことができます.nextTick():
process.nextTick(function(){
    console.log('nextTick callback!');
});
console.log('nextTick was set!');

Nodeで上記のコードnode testを実行する.js、印刷出力はnexttick was setです!nextTick callback! これはプロセスに入ることを意味する.nextTick()の関数はすぐに実行するのではなく、次のイベントループNodeまで待つ.jsプロセス自体のイベントはprocessオブジェクトによって処理され、exitイベントに応答すると、プログラムが終了する前にコールバック関数を実行できます.
//            
process.on('exit',function(code){
    console.log('about to exit with code:' + code);
});

JavaScript実行環境を判断するJavaScriptコードはブラウザでもノード環境でも実行できるものが多いが、プログラム自体が自分がどのような環境で実行されているのかを判断する必要がある場合があり、ブラウザとノードが提供する全局変数名に基づいて判断するのが一般的である
//  JavaScript    
if (typeof(window) === 'undefined') {
    console.log('node.js');
} else {
    console.log('browser');
}