Node.js
重要ポイント †
イベントループ †
- 並行処理をマルチスレッドではなく、イベントループによって実現する
- 実行すべきタスクをキューに積み、これを1つずつ取り出してシングルスレッドで実行する
- イベントを監視してイベントの都度、設定された処理を呼び出す
- イベントループが止まると、アプリケーション全体が止まる
Single Thread †
Non Blocking I/O †
- リクエストを並行して捌ける
- 大量の同時接続に耐えられる
- サーバリソースを効率的に利用しやすい
処理速度 †
他プラットフォームとの比較 †
パフォーマンスチューニング †
Worker Threads †
負荷分散 †
Clusterモジュール †
Nginx †
EventEmitter? †
HTTP/2 †
インストール・設定 †
Windows †
npm †
$ npm init
- このディレクトリ下は npm が管理下に置く!」宣言
- いろいろ英語で聞かれるが、とりあえず全部エンターキーを押しても問題ない
- 終了すると、ディレクトリ直下にpackage.jsonが作成される
$ npm install [パッケージ名]
- node_modulesというフォルダ下に、ライブラリが保存される
$ npm install [パッケージ名] --save
- package.json内に取ってきたライブラリが追記される
$ npm install -g [パッケージ名]
- グローバルインストール(npmのインストール場所にパッケージをインストール)
- 主にターミナルで利用できる便利ツールをインストールするために使用
- npmで入る便利ツールまとめ
$ npm run [タスク名]
- package.json内に書かれたシェルスクリプトを実行
- npm run だけを実行すると、現在どんなタスクがpackage.json内にあるかを一覧表示
$ npm root -g
- グローバルのnode_modulesディレクトリのパスを表示
$ npm bin -g
- npmがグローバルで使用しているディレクトリを表示
$ npm start
npx †
Chromebook †
パッケージ †
- cuid ... a useful tool for generating unique IDs
- immutable
- json-server
- json流しこむだけでサーバーが作れる。とりあえず今すぐモックサーバーを立てて動作を確かめたい時に便利。
非同期処理 †
ログ出力 †
Log4js †
morgan †
AMQP †
TCP通信 †
Azure †
事例 †
EventEmitter? †
util.inherits †