簡単なjs

5142 ワード

簡単なノードjs簡単に言えばjsはサービス側で実行するjavascript Nodeである.jsはChrome V 8エンジンに基づくjavascipt実行環境Nodeである.jsはイベント駆動、非ブロックI/Oモデルを用いる、軽量で効率的なNode.jsのパッケージマネージャnpmは、世界最大のオープンソースライブラリ生態系です.Nodeの中のすべてのモジュールはnpmの中で探し当ててダウンロードして使用することができます2:Node雑多なもの(1)インストール:直接インストールパッケージを開けてインストールすればいいので、一般的にcディスクにインストールします;インストールが終わったらDosウィンドウにnode-vを入力してバージョン番号とnpm-v(2)をチェックしてnode環境でプログラムを実行させますwebstormというエディタでなければ、その他:コンソールcdを開いてファイルトレイをnodeが実行するファイル名3:httpサーバコードを作成してhttpモジュールを先に導入する(nodeの関連機能はすべてモジュールが提供するので、httpサービスを使用するにはhttpモジュールを導入する)/httpモジュールを導入する(1)var http=require('http')//httpサービス(2)var server=httpを作成する.createServer(function(req,res){//httpサービスの作成時に、クライアントリクエストを受信したとき(ブラウザアドレスバーを介してリクエストを送信したとき)にパラメータとしてコールバック関数が渡されます.このコールバック関数というコールバック関数の中の2つのパラメータreq:要求オブジェクト:このパラメータから要求パスreqを取得することができる.urlリクエストメソッドreq.method等res:応答オブジェクト:このパラメータでクライアントに情報を送信することができる(res.write()/res.send()は一般的にコンソールに印刷されたものである);送信ページ(res.sendFile()は、一般的にこの方法でfsモジュールを導入するが、fsモジュールは以下で説明する)
})/配置ルーティングとは,ユーザがブラウザのアドレスバーに入力ウェブサイト要求の経路に応じて,フロントエンドに異なるデータやページなどを送信することである(以下,パラメータのない簡単なget要求サービス)(3)var server=http.createeServer(function(req,res){if(req.url='/index.html.html'||req.url=='/'){res.write('開新');res. end();/////これはクライアントにデータを送信するもので、Webページではありません.もちろんページに表示されますかvar path=fs.realpathSync('index.html');res.sendFile(');///ファイルの読み書き操作を使用してサーバに存在するファイルをresに書き込むReadStream('./login.html');rs.pipe(res);//上記の2つはいずれも、ユーザが要求したファイルがサーバに存在しない場合、ステータスを利用して対応する符号化res.statusCode=404を返すために使用される.res.end('not found})/サーバポート番号serverを傍受する.Listen(8888,function(){console.log('サーバ起動完了');})
ここでurlモジュールurlモジュールの下のparseメソッドを話して、要求したurlを文字列からオブジェクトに変換することができます.
     
    var  http = require('http');
     var  url = require('url');
    var fs = require('fs');
     var server = http.createServer(function(req,res){
//    

var urlObj = url.parse(req.url,true); console.log(urlObj.path);//リクエストのパスを取得log(urlObj.query)/getコミットパラメータif(urlObj.pathname='/index'||urlObj.pathname='/'){var rs=fs.createReadStream('./index.html');rs.pipe(res);
    }else if(urlObj.pathname=='./login'){
      //        
      if(urlObj.query.user=='123'&&urlObj.query.pass=='234')
             
          var rs=fs.createReadStream('./success.html');
                               rs.pipe(res);  

}else{ var rs=fs.createReadStream('./error.html'); rs.pipe(res); }else{ res.statusCode = 404; res.end('404') } }) server.Listen(8888,function(){console.log('サーバ起動完了');})外部ファイルを導入する場合、例えばcssなど//要求されたページにvar bol=fsが存在するか否かを判断する.existsSync('.'+urlObj.pathname);//ルーティングif(bol){var rs=fs.createReadStream('.'+urlObj.pathname);rs.pipe(res);Else{res.statusCode=404;res.end('404')}4:fsモジュールfsモジュールはファイルモジュールとも呼ばれる.このモジュールは、ローカルディスク内のファイルの読み書き、作成、削除、およびファイルディレクトリ操作に関する方法を提供します.まず、var fs=require('fs')にモジュールを導入します.(1)ファイル読み出し:(非同期読み出し)fs.readFile('data.txt',function(err,data){//ディスクからファイルを読み取る//errは読み取りに失敗したときに値があり、値がエラー情報であり、間違いなければerrはnullであり、dataパラメータには読み込まれたデータif(err){console.log(err)}が保存される.else{ console.log(data); } }) (同期読み出し)var str=fs.readFileSync('./smile.txt','utf-8') console.log(str); (2)書き込みファイル(非同期書き込み)fs.writeFile('hello.txt','hello world',{ファイル書き込み操作:writeFile(a,b,c,d)a:書き込むパスは、パスが存在しない場合に作成します.b:書き込むデータ、c:書き込む操作;d:書き込み終了のコールバック関数flag:'w'//aは、パッチ書き込みを表し、ファイルにデータがすでにある場合はメタデータの末尾に新しいデータをパッチする.w:上書き式の書き込みで、ファイルにすでにデータがある場合は元のデータを上書きします},function(err,data){console.log(err);console.log(data);})(同期書き込み)var str='sdssdsds';fs.writeFileSync('./smile.txt',str,{flag:'a'})(3)ファイルのコピー操作をコピーし、データの読み込みに成功すると別のファイルにfsを書き込む.readFile('data.txt',function (err,data) { if (err){ console.log(err); }Else{fs.writeFile('dataコピー.txt',data,{flag:'w'},function(err){if(err){console.log(err);}Else{console.log('レプリケーション成功');}}})fsモジュールには新しいディレクトリを作成する機能もあります.まず書かないでください.忘れたので、考えてから書きましょう.5:ファイルのパイプフロー操作はパイプフロー操作と普通の読み書き操作の違いを使用します.パイプフロー操作はフロー式で読み取り、書き込みファイルは64 kを読むたびに書き込み操作を行います.普通の読み書き操作はまずファイルをメモリに全部読み込んでから書き込む必要があります.メモリオーバーフロー//パイプフロー読み書きvar fs=require('fs')//ファイルはいくつかのブロックに分割する、各ブロックの大きさは64 kで、このファイルをブロックごとに操作して、メモリを節約する目的var rs=fsを達成する.createReadStream('data.txt');//読み込みストリームvar ws=fsを作成する.createWriteStream('hello.txt');//書き込みストリーム読み出しストリームが作成され、64 kのデータが読み出されるごとにdataイベントがトリガーされ、このイベントツリーを介して読み出したデータが取得される
rs.on('data',function(chunk){//イベント関数のパラメータchunkは、ストリームを読み出すたびに読み出されるデータを保存し、読み出し符号化を指定しない場合は、デフォルトのbuffer形式で//console.log(chunk.toString();//ws.write(chunk,function()/ストリームを書き込むwriteメソッドで書き込むデータを書き込みストリームを介して//console.log('書き込み終了');//)に書き込む.
})も直接:rs.pipe(ws);//rsリードストリーム下のpipeメソッドパラメータは、リードストリームが現在読み出している64 kのデータをライトストリームに伝達することができるライトストリームオブジェクトであり、ストリーム書き込みが完了するように書き込み、後続のリード動作を行うpipeオペレーションが同期動作であり、読み出したデータの書き込みが完了した後にのみ次のリード動作を行い、メモリにデータが蓄積することを保証するが、リード書き込み時間dataが長くなり、読み取りと同時に書き込むことができる読み書きは互いに干渉しない.しかし、ディスクの読み書き速度が一致しないとデータが蓄積する現象があるが、読み書き時間を短縮して待機することができる.......