#この記事の動作環境: Windows7 システム、nodejs10.16.2、Dell G3 コンピューター。nodejs でできること: 1. プログラマ向けのフルスタック開発の実現 2. パブリッククラスライブラリの統合とコードの標準化 3. 非同期プログラミング 4. IO 集中型アプリケーションの処理 5. 複雑なシステムの構築6. メモリスタック等の監視システムを実装します。
nodejs 概要:
Node.js は、Chrome V8 エンジンに基づく JavaScript 実行環境です。 Node.js はイベント駆動型のノンブロッキング I/O モデルを使用するため、軽量で効率的です。 Node.js のパッケージ マネージャー npm は、世界最大のオープンソース ライブラリ エコシステムです。nodejs でできること
1. Nodejs は Javascript 言語に基づいているため、不慣れな言語を別途学習する必要がなく、学習の敷居が低くなります。同時に、Web フロントエンド開発では Javascript 言語が非常に重要であり、特に HTML5 アプリケーションでは Javascript 言語を使用する必要があるため、フロントエンドとバックエンドの言語を統一することで、プログラマーのフルスタック開発を実現できるだけでなく、パブリック言語も統一することができます。クラスライブラリを作成し、コードを標準化します。これだけでも、Nodejs は市場の支持を獲得しています。 2. Nodejs はランタイム環境を再開発しませんでしたが、Nodejs のパフォーマンスと安定性を確保するために実行エンジンとして現在最速のブラウザ カーネルである V8 を選択しました。 3. Nodejs の開発は非常に効率的でコードもシンプルで、Nodejs のシングルスレッド機構を誇ります。 Nodejs のもう 1 つの機能である非同期プログラミングにより、Nodejs は IO 集中型のアプリケーションを処理する際に明らかな利点を得ることができます。個人的には、Web 開発に Nodejs を使用すると、Java よりも 10 倍効率的で、PHP コードよりも簡単だと感じています。 4. Nodejs コミュニティは成長しており、パッケージの数が急速に増加しているだけでなく、パッケージの品質も他の言語よりも大幅に向上しています。スターレベルのパッケージの多くはシンプルかつスマートで、開発者の使用習慣に合わせて設計されています。私が最もよく使用するツールキット (socket.io、moment.js、underscore.js、async.js、express.js、bower.js、grunt.js、forever.js... など) は、私の以前のプログラミング習慣を大きく変えています。 . . もちろん、私が Nodejs を使用する理由に加えて、多くの企業には Nodejs を使用する独自の理由があります。ebay が Nodejs を選択した理由は、次の 4 つの点に要約できます。
動的言語: 非常に高い開発効率と、次のような複雑なシステムを構築する能力。 http://ql.io. パフォーマンスと I/O 負荷: Nodejs は、非同期 IO を通じて IO 集中型の問題を非常にうまく解決します。 接続のメモリ オーバーヘッド: 各 Node.js プロセスは 120,000 を超えるアクティブな接続をサポートでき、各接続は約 2K のメモリを消費します。 操作: メモリ スタックの Nodejs 監視システムを実装しました。15 Nodejs アプリケーション シナリオ
Nodejs についてはすでに予備的な理解ができています。Nodejs のアプリケーション シナリオを見てみましょう。 1 Web 開発: Express EJS Mongoose/MySQLexpress は、Web サイトを迅速に構築できる軽量で柔軟な Nodejs Web アプリケーション フレームワークです。 Express フレームワークは、Nodejs の組み込み Http モジュールに基づいて構築されており、Http モジュールを再パッケージして Web リクエスト処理の機能を実装します。 ejs は、コンパイルを通じて HTML コードを生成する埋め込み Javascript テンプレート エンジンです。 mongoose は MongoDB のオブジェクト モデル ツールで、Mongoose フレームワークを通じて MongoDB にアクセスできます。 mysql は、MySQL データベースに接続し、MySQL へのアクセスに使用できる通信 API です。 通常、Web 開発に Nodejs を使用するには、Java の SSH と同様に 3 つのフレームワークを使用する必要があります。 2 REST 開発: Restifyrestify は、サーバーとクライアントをサポートする Nodejs に基づく REST アプリケーション フレームワークです。 Restify は Express よりも REST サービスに重点を置き、Express のテンプレート、レンダリング、その他の機能を削除すると同時に、REST プロトコルの使用、バージョン管理のサポート、HTTP 例外処理を強化します。 3 Web チャット ルーム (IM): Express http://Socket.iosocket.io は、Nodejs アーキテクチャに基づくソフトウェアで、リアルタイム通信用の WebSocket プロトコルをサポートします。バッグ。 Socket.io は、ブラウザ間でリアルタイム アプリケーションを構築するための完全なパッケージを提供します。Socket.io は完全に JavaScript によって実装されています。 4 Web クローラー: Cheerio/Requestcheerio は、サーバー用に特別にカスタマイズされた、高速かつ柔軟でカプセル化された jQuery コア機能ツールキットです。 Cheerio にはコア jQuery のサブセットが含まれており、jQuery ライブラリからすべての DOM の不整合とブラウザの非互換性が取り除かれ、その真にエレガントな API が明らかになります。 Cheerio は非常にシンプルで一貫した DOM モデルで動作し、解析、操作、レンダリングを驚くほど効率的にします。基本的なエンドツーエンドのベンチマークでは、Cheerio が JSDOM よりも約 8 倍高速であることが示されています。 Cheerio は @FB55 互換の htmlparser をカプセル化しており、ほぼすべての HTML および XML ドキュメントを解析できます。 5 ウェブ ブログ: HexoHexo は、Node.js をベースとしたシンプルで軽量な静的ブログ フレームワークです。 Hexo を使用すると、わずか数コマンドで完成する独自のブログをすぐに作成できます。Hexo がリリースされると、独自の Node サーバーまたは github にデプロイできます。個人ユーザーにとって、GitHub 上にデプロイすることは、サーバーのコストを節約できるだけでなく、さまざまなシステム運用保守 (システム管理、バックアップ、ネットワーク) のトラブルを軽減できるなど、多くのメリットがあります。したがって、github をベースにした個人サイトが人気になり始めています...
6 Web フォーラム:nodeclub
Node Club は、Node.js と MongoDB で開発された新しいコミュニティ ソフトウェアです。インターフェイスと強力な機能 豊富でコンパクト、高速な Node.js は中国の技術コミュニティ CNode で使用されていますが、独自のコミュニティを構築するために使用することもできます。
7 Web スライドショー: Cleaver
Cleaver は、Markdown に基づいてプレゼンテーションを生成できます。すでに Markdown ドキュメントをお持ちの場合は、30 秒でスライドショーを作成できます。クリーバーはハッカーのためのツールです。
8 フロントエンドパッケージ管理プラットフォーム: bower.js
Bower は twitter が提供するパッケージ管理ツールで、nodejs のモジュール的な考え方に基づいて機能がさまざまなモジュールに分散されています。 、そのため、モジュールとモジュール間には関係があり、モジュール間のこの関係を管理するために Bower が使用されます。
9 OAuth 認証: Passport
Passport プロジェクトは、Nodejs に基づく認証ミドルウェアです。 Passport は「ログイン認証」のみを目的としているため、コードがクリーンで保守しやすく、他のアプリケーションへの統合も容易です。 Web アプリケーションには通常、ユーザー名とパスワードによるログイン、および OAuth 認証によるログインという 2 つの形式のログイン認証があります。 Passport は、アプリケーションの特性に応じてさまざまな認証メカニズムを構成できます。この記事では、ユーザー名とパスワードの認証ログインについて紹介します。
10 スケジュールされたタスク ツール: Later
Later は、スケジュールされたタスクを最も簡単な方法で実行する Nodejs に基づくツール ライブラリです。後でノードとブラウザで実行できます。
11 ブラウザ環境ツール:browserify
Browserify の登場により、Nodejs モジュールをブラウザで実行し、require() 構文形式を使用してフロントエンド コードを編成し、npm モジュールをロードできるようになります。 。ブラウザでは、browserify を呼び出してコンパイルされたコードも