フロントエンド学習のまとめ(8)NodeJS、フロントエンドエンジニアのバックエンドへのマイルストーン

5327 ワード

一ノードJS概要
NodeJSの長所と短所のまとめ:
特典:1.イベントと非同期を特徴とした最も成功したサーバソリューション
2.配置が簡単で便利です.名前は約束を重視する(統一基準);プロジェクトに必要な拡張機能は、プラグインのリソースが相対的に独立しており、衝突しにくいです.
3.イベント駆動(システムが現在発生しているイベントに応じてリソースをスケジュールする)
4.非同期プログラミング(ほとんどの言語は同期実行で、一つの操作は問題が発生して全体の操作に影響します.IOがある場合はその完了を待つ必要があります.jsは非同期として実行します.IOがある場合は、それを待つだけではなく、後の操作を継続して実行します.IOが完了したら、イベントで通知して、関連した操作を実行します.だから、速いです.)
非同期プログラミングを実現する方法:a.コールバック関数(操作が完了したら呼び出し、高結合、プログラムの流れが複雑で、維持しにくく、イベントは関数1つにのみバインドされます)b.イベント傍受(イベントを監視します.発生時にはある操作を行います.一つのイベントは複数の関数を結びつけることができます.結合度は低いですが、プログラムの流れはより複雑です.c.リリース/購読モードを発行します.(専門の登録機関を維持するため、特定のイベントが発生した場合は登録機関に連絡し、あるイベントを傍受する必要があります.登録機関のように購読すればいいです.)
5.高効率と性能
単一の操作には利点がないが、リソース配分とIO操作の最適化によって効率的に実現される(例えば、phpはIO処理にマルチスレッドを開く(無駄)).
6.マルチスレッドNode.js単一プロセスはcpu資源をよりよく利用するために、サブプロセスとマルチプロセスを利用できます.child upurcessモジュールマルチプロセス:pm 2などの第三者ツール
短所:
1.匿名関数を大量に採用し、投げた異常が読みにくくなる(jsの大きな欠点の一つでもあるので、匿名関数に名前を付けるのはいい習慣ですが、やる人は多くないです)
2.try/catchは同期コードに限定され、異常捕獲がより複雑になる(非同期コードであれば、非同期コード内部(エラーフラグパラメータを使用して)キャプチャが必要となる.
3.シングルスレッド(最大の利点はスレッド間のリソーススケジュールが存在しないことです.)最大の欠点は信頼性です.エラーは捕獲されないと無力です.(解決:1.コードを書く時は、間違いを考慮して、テスト時はできるだけ100%をカバーして、共通のエラーをシミュレーションします.2同期コードを使用しないでください.3プロセスが問題になると、サービスが全くできなくなります.4専門のコード検査プロセスが正常に実行されているかどうか、さもなければ再開します.)
4.CPU密集型のシーンには適していない(この場合は、できるだけ他の核資源をうまく利用できる言語(またはnode.jsのC言語拡張を作成する)
5.コールコードは読書に影響を与えます.(非同期コードは読みにくいものが多く、コードを読むことはソフトウェアプロジェクトにとって非常に重要です.)
二js全スタックの最適な組み合わせ(MEAN Stock)、
MEAN Stock、すなわち、MongoDB+Express+AnglarJS+NodeJSは、現在のほとんどのウェブアプリケーションのニーズを満たすのに十分です.
MongoDB:
Jsを使って制御と操作言語として、ほとんど配置なしで運行できます.使いやすいです.
Express:強力な機能と拡張性、ウェブサーバのコア.
AnglarJS:フロントエンド構造フレームは、MVCの設計理念を組み合わせて、バックエンドのようにフロントエンドコードを書くことができます.
NodeJS:フロントエンドエンジニアがバックエンドの利器を書いています.
三NodeJS常用テクニック
1 node実行某jsファイル:
node somejs.js
2
NodeJSデバッグ:
常用デバッグツール:
Web Storm nodemon pm 2 node-innspector Chrome Developer Tools
四NodeJS常用モジュール
1 Node.jsファイルシステムモジュール
Node.jsは、UNIX(POSIX)規格に類似したファイル操作APIのセットを提供する.すなわち、ファイルシステムモジュール(fs)である.
Node.jsファイルシステム(fsモジュール)モジュールにおける方法は、非同期バージョンと同期バージョンがあり、例えば、ファイルの内容を読み取る関数は非同期fs.readFile()と同期fs.readFileSync()がある.
非同期の方法関数の最後のパラメータはコールバック関数であり、コールバック関数の最初のパラメータはエラー情報を含んでいます.
非同期法を使用することを提案します.同期よりも非同期法の方が性能が高く、速度も速く、渋滞もないです.
2.Google v 8
3.ネットワーク機能
4.バイナリデータ
5.データストリーム
6.暗号化と復号
7.nodemon
nodemonは非常に実用的なツールです.NodeJSソースコードの変化を監視し、自動的にサーバーを再起動します.ページを更新するだけであなたの変更が見られます.ここには同じ機能を実現できるツールがあります.しかし、nodemonよりもっと柔軟で軽量で、メモリの占有率がもっと少ないです.
プロジェクトにnodemonモジュールをインストールし、コマンドを使用することを推奨します.
nodemon bin/www
node命令の代わりにnode.jsファイルを実行します.
閉じたり離れたりしないように注意してください.離れると接続が切断されます.もう一つの制御端末を開けて、コマンドを入力して、他の操作を行うことができます.
五MongoDB常用操作
MongoDBのメリット(なぜMongoDBを使うか):
「ゆとり」のデータ格納形態は非常に柔軟であり、MongoDBは各keyに対応するvaluesの数を制限しない.例えばブログシステムでは、コメントがない文章もあれば、その値は空セットである.コメントが多く、制限なしに挿入できる文章もある.より柔軟なのは、MongoDBは同じ集合を要求しないことである.(collectionは、SQLのtableに相当する)中の違ったdocumentには同じkeyがあります.例えば、上記のような文書組織のほかに、ある文書に代表される文章にはlikesという項目がないかもしれません.またある文章にはもっと多くの項目があるかもしれません.例えば、dislikesなどがあります.これらの異なった文書はすべて同じ集合に柔軟に保存できます.しかも調べ方も非常に簡単です.全部同じ集合に記憶されています.ドキュメント内では、各種のドキュメント間の検索は行われません.このようなMongoDB式の記憶はデータの維持にも便利です.ブログ記事にとって、すべての関連データはこのdocumentの中にあります.一つのデータ操作を考慮する必要はなく、involveのいくつかのテーブルが必要です.
もちろん、上記の利点以外にも、MongoDBのデータはJSON(Javascript Object Notation)で記憶されている(上のようなkey-valueの形です)という利点があります.ほとんどのwebアプリケーションはJavascriptに基づいています.したがって、格納されているデータとアプリケーションのデータのフォーマットは高度に一致しています.変換される必要はありません.より多くの利点は、参照できます.http://www.tutorialspoint.com/mongodb/mongodb_advantages.htm.
monogodbは文書型データベースで、関係型データベースに相当するテーブルを集めて、対象は関係型データベースの行に相当します.
バックグラウンドでモンゴルドサービスを開始します.
  mongod --dbpath=/data/db --port=27017 --fork --logpath=var/log/mongd.log
ログはvar/log/mogd.logに記録されています.
2.モンゴルドサービスを終了する:
#mongod --shutdown    kill (forked process id)
  • コマンドラインツール
  • ローカル:
    $ mongo
    特定のipとポート:
    $ mongo ip:port
    モンスターコマンドを実行した後:
    4.現在のデータベースを調べます.
    > show dbs
    5.あるデータベースを使っています.(作成できません.集合にデータを入れてから本当に作成しました.対象もデータを入れてから作成したものです.)
    > use dbname
    6.データを挿入する(セットなしでセットを作成する)
    アメリカの具体的なデータベースの後:
    > db.objectsname.insert({"key1":"value1"})
    mongodb図形化管理ツール:
    個人的にはRobomongoがオススメです.https://robomongo.org/
    NodeJS学習資源