Node.js学習ノート(三)
3709 ワード
global
JSのブラウザにおけるグローバルオブジェクトは
JavaScriptプログラムはイベント駆動によって実行されるシングルスレッドモデルであり、Node.jsも例外ではない.Node.jsは、応答イベントのJavaScript関数を継続的に実行し、応答イベントの関数が実行されるまで、Nodeは終了しました.
nextTick方法
この方法は次のイベント応答でコードを実行できます.
fsモジュール
fsモジュールはNode.jsの内蔵モジュールで、ファイルの読み書きを担当しています.非同期法と同期法を同時に提供した.
非同期
非同期は、JSがIO操作を実行する場合、実行結果を待つ必要はなく、コールバック関数に着信した後、以下のコードを継続して実行し、jQueryの
非同期ファイル
テキストファイルを非同期的に読み出す例は以下の通りです.
もし私たちが読み込むのがバイナリファイルなら?次に、画像を読み取る例を示します.
ここでお話しします
ファイルを同期します
同期してファイルを読むのは非同期の場合に比べて、
ファイルを書く
ファイルサイズ、作成時間などの情報は
JSのブラウザにおけるグローバルオブジェクトは
window
オブジェクトである.Node.js環境において、グローバルオブジェクトはglobal
と呼ばれる.それを使って現在のJavaScriptの実行環境を区別できます.if(typeof(window)==='undefined'){
console.log('node.js');
}else{
console.log('browser');
}
processprocess
はNode.jsが提供するオブジェクトであり、現在のNode.jsのプロセスを表しています.JavaScriptプログラムはイベント駆動によって実行されるシングルスレッドモデルであり、Node.jsも例外ではない.Node.jsは、応答イベントのJavaScript関数を継続的に実行し、応答イベントの関数が実行されるまで、Nodeは終了しました.
nextTick方法
この方法は次のイベント応答でコードを実行できます.
fsモジュール
fsモジュールはNode.jsの内蔵モジュールで、ファイルの読み書きを担当しています.非同期法と同期法を同時に提供した.
非同期
非同期は、JSがIO操作を実行する場合、実行結果を待つ必要はなく、コールバック関数に着信した後、以下のコードを継続して実行し、jQueryの
getJSON()
を例にします.$.getJSON('http://example.com/ajax',function(data){
console.log('IO ……');
});
console.log(' IO ‘);
同期は線型であり、IO動作の戻りを待って、後続コードを実行する必要がある:var data=getJSONSync('http://example.com/ajax');
同期コードはより少ないが、非同期は実際のユーザー体験においてより良い.非同期ファイル
テキストファイルを非同期的に読み出す例は以下の通りです.
‘use strict';
var fs=require('fs');
fs.readFile('sample.txt','utf-8',function(err,data){
if(err){
console.log(err);
}else{
console.log(data)
}
})
なお、sample.txt
は、現在のディレクトリの下にある必要があり、ファイルの符号化フォーマットはutf-8である.もし私たちが読み込むのがバイナリファイルなら?次に、画像を読み取る例を示します.
'use strict';
var fs = require('fs');
fs.readFile('sample.png', function (err, data) {
if (err) {
console.log(err);
} else {
console.log(data);
console.log(data.length + ' bytes');
}
});
バイナリファイルを読み込むと、出力f-8などのファイルコードが入ってこない場合、dataはBuffer
オブジェクトに戻ります.ここでお話しします
Buffer
オブジェクトは、Nodeがバイナリデータを処理するインターフェースであり、Node元のグローバルオブジェクトでもあります.直接に使用できます.必要ではありません.require(‘buffer’)
.その役割は配列に似ている.ファイルを同期します
同期してファイルを読むのは非同期の場合に比べて、
readFile
にsync
を追加しただけで、以下の例を参照してください.'use strict'
var fs=require('fs');
try{
var data=fs.readFileSync('sample.txt','utf-8');
console.log(data);
}
catch(err){
//
}
エラーが発生したら、try...catch
を通じてしか捕獲できません.ファイルを書く
fs.writeFile()
により実現される.'use strict'
var fs=require('fs');
var data='Hello Node.js!';
fs.writeFile('output.txt',data,function(err){
if(err){
console.log(err);
}else{
console.log('ok');
}
});
ファイルを読むのと同じで、writeFile()
にも同期方法があります.'use strict';
var fs=require('fs');
var data='hello Node.js';
fs.writeFileSync('output.txtx',data);
statファイルサイズ、作成時間などの情報は
writeFileSync()
で取得できます.これはstatオブジェクトに戻ります.ファイルの詳細を教えてください.'use strict';
var fs=require('fs');
fs.stat('sample.txt',function(err,stat){
if(err){
console.log(err);
}else{
// :
console.log('isFile: ' + stat.isFile());
// :
console.log('isDirectory: ' + stat.isDirectory());
if (stat.isFile()) {
// :
console.log('size: ' + stat.size);
// , Date :
console.log('birth time: ' + stat.birthtime);
// , Date :
console.log('modified time: ' + stat.mtime);
}
}
});
同様に、同期関数fs.stat()
もある.'use strict';
var fs=require('fs');
var stats=fs.statSync('sample.txt');
console.log(stats.isFile()); //true