nodejs の入門tutorial_node.js

WBOY
WBOYオリジナル
2016-05-16 16:30:491568ブラウズ

はじめに

nodeJ を学ばなければ、私たちは老いてしまいます... HTML5 の波が押し寄せたとき、多くの先人が NodeJ の旅を始めましたが、その当時、私はまだサーバーサイド プログラムを作成していました
その後、フロントエンドに切り替えましたが、私とエシュロンとの距離はすでに非常に大きくなっています。私はサーバーサイド言語を知っていて、長い間働いてきたので、NodeJ を学び始めたばかりです。完全なフロントエンド
今回のNodeJsの学習計画は次のとおりです。
①基礎知識を学ぶのに1~2週間
② 簡単なプロジェクトを1週間程度で開発
③ NodeJs を使用してモバイル端末のデバッグ用ツールセットを開発します
④パッケージ関連(ちょっと遠いかもしれません)

NodeJ の機能

①非同期
ファイルの読み取りからネットワークリクエストまで、NodeJs は非同期で完了し、プログラミング モデルの点で Node が重要な役割を果たします

② イベントコールバック
イベント コールバックによりプログラムは軽量になりますが、詳細は依然としてプログラマー次第です。しかし、コールバック関数は実際には非常に読みにくいです

③ シングルスレッド
ノードはシングルスレッドです。マルチスレッドだと言語が奥深くなってしまいますが、スレッドに関するデッドロックやその他の問題は発生しません。 ただし、マルチコアは使用できないため、パフォーマンスに関連する問題があります。

モジュールの仕組み/CommonJs

以前はサーバーサイド開発を行っていましたが、コードがきちんと整理されていないと後のメンテナンスが非常に困難になるため、MVC と 3 層アーキテクチャがあります

現在、フロントエンドのビジネス ロジックは徐々にバックエンドに近づいており、シングルページ アプリケーションに関する限り、バックエンドのプログラム ロジックを超えています

。 ページビューの継続的な増加により、JS コードの量が急増します。フロントエンド コードをどのように管理するかが問題になるため、requireJs が登場しました。
PS: この段落は、nodeJ とは何の関係もありません...
JavaScript にはモジュラー システムがないため、大規模なアプリケーションを開発するための基盤を js に提供するために CommonJs が提案されました

モジュールリファレンス

数学的計算などのモジュールを参照したい場合:

var math = require('math');

モジュール定義

独自のモジュールを定義したい場合は、次のようにすることができます

コードをコピーします コードは次のとおりです:
exports.add = function () {
合計を返します;
}


この関数が数学で定義されていれば使用できます

math.add();

モジュール ID

モジュール識別子は、require に渡されるパラメーターであり、キャメルケースで名前を付ける必要があり、requireJS

と非常によく似ています。

モジュールの実装

Node のモジュール実装は 2 つのカテゴリに分けられます。1 つはシステムレベルのコア モジュール、もう 1 つはユーザーが作成したファイル モジュールです

コア モジュールは、コンパイル プロセス中にバイナリ ファイルに変換されます。ノード プロセスの開始後、一部のコア モジュールはメモリに直接ロードされます (ファイルの場所、コンパイル、実行)

。 ファイルモジュールは動的にロードする必要がありますが、これは比較的時間がかかります
ただし、ロードされると、それらのファイルはキャッシュされ、キャッシュされたファイル (コンパイルされたファイル) は、再度導入されるときに読み取られます
ここでもう少し詳しく説明します。アンダースコアを使用する場合、HTML をコンパイルしてテンプレート関数を作成します (実際には、これは単なる関数です)。
プロジェクトをデプロイする前にコンパイルした関数を保存し、HTML テンプレート ファイルを削除します (最適化効果は不明)

ノードでは、各モジュールはオブジェクトです:

コードをコピーします コードは次のとおりです:
関数モジュール(id, 親) {
this.id = id;
this.exports = {};
//parent はキーワードなので無差別に使用しないでください
This.parent = 親;
if (親 && 親.子) {
parent.children.push(this);
}
this.filename = null;
this.loaded = false;
this.children = [];
}


コンパイルおよび実行中にファイルモジュールを導入する最後の段階。特定のファイルを見つけた後、ノードは新しいモジュールオブジェクトを作成し、パスに従ってロードしてコンパイルします。 正常にコンパイルされた各モジュールは、そのファイル パスを Module._cache

のインデックスとしてキャッシュします。
各モジュール ファイルには、require、exports、および module という 3 つの変数がありますが、これらはファイル内で定義されていません (__filename__ 変数と __dirname__ 変数にも同じことが当てはまります)

実際、コンパイル プロセス中に、Node は JavaScript ファイルの内容の先頭と末尾をラップします (カスタム関数をウィンドウに渡すのと同じです)


コードをコピー コードは次のとおりです:

(関数 (エクスポート、要求、モジュール、__filename__、__dirname__) {
var math = require('math');
exports.area = 関数 (半径) {
'';
を返します };
});

このようにして、モジュールは分離され、相互に影響を与えなくなります。これはアンダースコアのコンパイルに似ています...

パッケージと NPM

ノードは独自のコア モジュールを編成するため、サードパーティのファイル モジュールを整然とした方法で記述して使用できますが、サードパーティのモジュールでは依然としてモジュールがさまざまな場所でハッシュされます
モジュール アウトソーシングと NPM は、相互に直接参照することはできません。
PS: 多くのモジュールがパッケージを形成します。このパッケージの概念は Java パッケージの概念と似ているため、#assembly の概念も同様であるはずです

パッケージ構造を解凍すると、いくつかのファイルが形成されます:
①package.json記述ファイル
② bin 実行可能バイナリディレクトリ
③ lib JavaScript コードディレクトリ
④ ドキュメントドキュメント (ほぼなし)
⑤ テストデモ

上記は CommonJS パッケージの仕様の一部ですが、NPM をマスターする必要があることを少し理解できます。NPM の助けを借りて、管理パッケージを上手にインストールできます。

依存関係パッケージをインストールします

依存関係パッケージのインストールは一般的な方法です:

npm install Express
実行後、カレントディレクトリにnode_modulesディレクトリが作成され、その下にexpressディレクトリが作成されます...
PS: Express は NodeJs 上の人気のある Web 開発フレームワークであり、Web アプリケーションを迅速に開発するのに役立ちます
インストールの完了後に呼び出すことができます:

コードをコピーします コードは次のとおりです:

var Express = require('express');

結論

このセクションは簡単に終了します。実際のプロジェクトのプロセスは後で徐々に深めていきます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。