Node要領
6307 ワード
ノードって何?webアプリケーション コマンドラインツール バックグラウンドプログラム デスクトッププログラム Webアプリケーション:単一ページアプリケーションを提供する簡単なプログラム、restマイクロサービス、およびスタック全体の
コアモジュール:
イベントモジュールは、イベントを処理する小さなライブラリであり、
非同期I/O
受信応答はajax送信が終了した後に出力される.
ファイルの読み込み:
2つのファイル読み込みタスクの所要時間は、最も遅いファイル読み込みの所要時間に依存します.
コアモジュールとストリームの使用
同期の場合、それらの消費時間は2つのタスクの消費時間の合計です.
非ブロックI/O
非ブロックI/Oは、プログラムが他のイベントを行うときにネットワークリソースを取得するために要求を開始し、ネットワーク操作が完了すると、この操作の結果を処理するためにコールバック関数を実行することを示す最下位の用語です.
一般的な
ブラウザは、要求を開始することによって、非ブロックI/Oを通じて、アプリケーションに転送して在庫をチェックし、ユーザーを登録し、返信メールを送信し、
イベントとコールバック関数
イベントポーリング:3つの非ブロックネットワークコール:要求用 データベース用 応答用 イベントポーリングは、一方向に実行される先入先出キューです.
使用する
例:
シングルスレッド 単一スレッドの欠点は、マルチコア 大量計算占有 作業スレッドは、メインスレッドをブロックしないように、実行結果をメッセージングによって伝達し、メインスレッドの サブスレッドの出現は,
I/O密集型とCPU密集型 I/O密集の利点は主に パラレルI/Oにより、使用者は分散環境を効率的に利用でき、安定したインタフェースを有効に利用してwebレンダリング能力を向上させることができる.
クラスの構造:
es6
ジェネレータは非同期I/Oを同期プログラミングスタイルにすることができます.
テンプレート文字列
デバッガ
1つの
Node
はJavaScript
実行プラットフォームです.特徴:非同期とイベント駆動メカニズム、およびその標準ライブラリ.Node
の動力源はV8 JavaScript
エンジンから来ており、Google Chrome
にサービスを提供するChromium
プロジェクトグループによって開発された.V8
はJavaScript
コードの解釈と実行を担当する.c++
バインディングレイヤを使用して、libuv
およびv8
を結合することができる.node
はv8
特性:shipping,staged,in progress
の3つのグループを含む.npm
要求Node
プロジェクトが存在するディレクトリの下にpackage.json
ファイルがあります.package.json
ファイルを作成する最も簡単な方法はnpm
を使用します.node
プログラム主要分:web
アプリケーション.mkdir example-project
cd example-project
npm init -y
コアモジュール:
node
のコアモジュールは、サーバ側JavaScript
を記述するために必要なツールである他の言語の標準ライブラリに相当します.イベントモジュールは、イベントを処理する小さなライブラリであり、
node
のほとんどのapi
はそれに基づいています.node
ファイルシステムライブラリ,fs,path
,tcp
クライアントとサービス側ライブラリnet
,http
ライブラリ,ドメイン名解析ライブラリdns
,テストの断言ライブラリassert
,プラットフォーム情報を照会するオペレーティングシステムライブラリos
である.非同期I/O
Ajax
リクエストを開始します.$.post('/url',{title: 'web'}, function(data){
console.log(' ');
});
console.log(' ajax ');
受信応答はajax送信が終了した後に出力される.
Ajax
はpost
要求によりajax
要求をサーバに送信し、サーバは要求を処理し、応答データを返信してコールバックを実行する.ファイルの読み込み:
var fs = require('fs');
fs.readFile('/path',function(err,file){
console.log(' ')
});
console.log(' ');
readFile()
は、fs.readFile()
非同期呼び出しnode
によって要求を処理し、コールバックを実行するためにデータを返す.2つのファイル読み込みタスクの所要時間は、最も遅いファイル読み込みの所要時間に依存します.
fs.readFile('/path1', function(err,file){
console.log(' 1 ');
});
fs.readFile('/path2',function(err, file){
console.log(' 2 ');
});
コアモジュールとストリームの使用
const fs = require('fs');
const zlib = require('zlib');
const gzip = zlib.createGzip();
const outStream = fs.createWriteStream('output.js.gz');
fs.createReadStream('./node-stream.js')
.pipe(gzip)
.pipe(outStream)
同期の場合、それらの消費時間は2つのタスクの消費時間の合計です.
非ブロックI/O
非ブロックI/Oは、プログラムが他のイベントを行うときにネットワークリソースを取得するために要求を開始し、ネットワーク操作が完了すると、この操作の結果を処理するためにコールバック関数を実行することを示す最下位の用語です.
一般的な
Node Web
アプリケーションで、Web
アプリケーションライブラリExpress
でショップの受注プロセスを処理します.Node
およびExpress
には、http
ルータ、非ブロックネットワークI/O、スレッドなど、libuvが含まれています.ブラウザは、要求を開始することによって、非ブロックI/Oを通じて、アプリケーションに転送して在庫をチェックし、ユーザーを登録し、返信メールを送信し、
http
応答を行い、非ブロックネットワークI/Oに戻り、ブラウザに応答するJSON HTTP
応答を返す.同時に返信メールを送信し、データベースを更新します.イベントとコールバック関数
Node
内蔵http
サーバライブラリ、すなわちコアモジュールhttp.Server
は、ストリーム、イベント、ノードのhttp
要求解析器の組合せで要求を処理する.イベントポーリング:3つの非ブロックネットワークコール:
ajax
非同期コミットサービス側プロセス:var http = require('http');
var querystring = require('querystring');
http.createServer(function(req, res){
var postData = '';
req.setEncoding('urf8');
req.on('data',function(num) {
postData += num;
});
req.on('end',function(){
res.end(postData);
});
}).listen(8080);
console.log(' ');
ajax
要求はsuccess
イベントをバインドした.$.ajax({
'url': '/url',
'method': 'POST',
'data': {},
'success': function(data){
// success
}
});
使用する
node
のhttp
書き込みhello world
例:
const http = require('http');
const port = 8080;
const server = http.createServer((req, res) => {
res.end('hello');
});
server.listen(port,()=>{
console.log('server');
});
シングルスレッド
Node
ブラウザでのシングルスレッドの特徴を保持しています.JavaScript
を利用できないことです.エラーはアプリケーション全体の終了を引き起こし、アプリケーションの堅牢性が試されます.cpu
非同期I/Oの呼び出しを続行できません.cpu
は、Web Workers
大きな計算ブロックJavaScript
レンダリングの問題を解決するために、作業スレッドを作成して計算することができる.UI
に作業スレッドがアクセスできなくなる.UI
単一スレッドの頑丈性とマルチコアの利用不能Node
の問題に余裕を持って対応できることを示している.I/O密集型とCPU密集型
CPU
ネットワーク向けでパラレルI/Oが得意で、より多くのハードウェアリソースを効率的に組織し、より良いサービスを提供することができます.Node
イベントループの処理能力を利用して、各スレッドを各リクエストサービスのために起動するのではなく、リソースの占有量が極めて少ないことにある.Node
前後端プログラミング言語環境統一;高性能I/Oは、リアルタイムアプリケーションに使用されます.Node
オブジェクトクラスの構造:
function User() {
//
}
User.prototype.method = function() {
//
};
es6
class User {
constructor(){
}
method(){
}
}
[1,2,3].map(n=>n*2).filter(n=>n>3);
ジェネレータは非同期I/Oを同期プログラミングスタイルにすることができます.
prototype
アプリケーションライブラリにジェネレータが使用されています.テンプレート文字列
Koa Web
適用this.body = `
web
jeskson
`;
デバッガ
web
付属のスケジューラは、単一ステップ実行とnode
、読み取り、計算、出力、ループをサポートします.REPL
サポートnode
デバッグプロトコル1つの
Chrome
アプリケーション:mkdir hello_express
cd hello_express
npm init -y
npm i express --save
express web
では、関数は1等オブジェクトです.JavaScript
は、他のスクリプト言語よりも非同期リアルタイムプログラムを書くことができます.node
は、高速、プラットフォーム間、非ブロックI/Oを提供するローカルライブラリです.libuv
は、デバッガと依存マネージャnode
を備えています.npm
は、v8
ランタイムとして使用される.