nodejs の入門tutorial_node.js

May 16, 2016 pm 04:30 PM
nodejs はじめる

はじめに

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ワンクリックでPPTを生成!キミ: まずは「PPT出稼ぎ労働者」を普及させましょう ワンクリックでPPTを生成!キミ: まずは「PPT出稼ぎ労働者」を普及させましょう Aug 01, 2024 pm 03:28 PM

キミ: たった 1 文の PPT がわずか 10 秒で完成します。 PPTはとても面倒です!会議を開催するには PPT が必要であり、週次報告書を作成するには PPT が必要であり、投資を勧誘するには PPT を提示する必要があり、不正行為を告発するには PPT を送信する必要があります。大学は、PPT 専攻を勉強するようなものです。授業中に PPT を見て、授業後に PPT を行います。おそらく、デニス オースティンが 37 年前に PPT を発明したとき、PPT がこれほど普及する日が来るとは予想していなかったでしょう。 PPT 作成の大変な経験を話すと涙が出ます。 「20 ページを超える PPT を作成するのに 3 か月かかり、何十回も修正しました。PPT を見ると吐きそうになりました。」 「ピーク時には 1 日に 5 枚の PPT を作成し、息をすることさえありました。」 PPTでした。」 即席の会議をするなら、そうすべきです

CVPR 2024 のすべての賞が発表されました!オフラインでのカンファレンスには1万人近くが参加し、Googleの中国人研究者が最優秀論文賞を受賞した CVPR 2024 のすべての賞が発表されました!オフラインでのカンファレンスには1万人近くが参加し、Googleの中国人研究者が最優秀論文賞を受賞した Jun 20, 2024 pm 05:43 PM

北京時間6月20日早朝、シアトルで開催されている最高の国際コンピュータビジョンカンファレンス「CVPR2024」が、最優秀論文やその他の賞を正式に発表した。今年は、最優秀論文 2 件と学生優秀論文 2 件を含む合計 10 件の論文が賞を受賞しました。また、最優秀論文ノミネートも 2 件、学生優秀論文ノミネートも 4 件ありました。コンピュータービジョン (CV) 分野のトップカンファレンスは CVPR で、毎年多数の研究機関や大学が集まります。統計によると、今年は合計 11,532 件の論文が投稿され、2,719 件が採択され、採択率は 23.6% でした。ジョージア工科大学による CVPR2024 データの統計分析によると、研究テーマの観点から最も論文数が多いのは画像とビデオの合成と生成です (Imageandvideosyn

Nodejs はバックエンド フレームワークですか? Nodejs はバックエンド フレームワークですか? Apr 21, 2024 am 05:09 AM

Node.js は、高いパフォーマンス、スケーラビリティ、クロスプラットフォーム サポート、豊富なエコシステム、開発の容易さなどの機能を備えているため、バックエンド フレームワークとして使用できます。

ベアメタルから 700 億のパラメータを備えた大規模モデルまで、チュートリアルとすぐに使えるスクリプトがここにあります ベアメタルから 700 億のパラメータを備えた大規模モデルまで、チュートリアルとすぐに使えるスクリプトがここにあります Jul 24, 2024 pm 08:13 PM

LLM が大量のデータを使用して大規模なコンピューター クラスターでトレーニングされていることはわかっています。このサイトでは、LLM トレーニング プロセスを支援および改善するために使用される多くの方法とテクノロジが紹介されています。今日、私たちが共有したいのは、基礎となるテクノロジーを深く掘り下げ、オペレーティング システムさえ持たない大量の「ベア メタル」を LLM のトレーニング用のコンピューター クラスターに変える方法を紹介する記事です。この記事は、機械がどのように考えるかを理解することで一般的な知能の実現に努めている AI スタートアップ企業 Imbue によるものです。もちろん、オペレーティング システムを持たない大量の「ベア メタル」を LLM をトレーニングするためのコンピューター クラスターに変換することは、探索と試行錯誤に満ちた簡単なプロセスではありませんが、Imbue は最終的に 700 億のパラメータを備えた LLM のトレーニングに成功しました。プロセスが蓄積する

Nodejs インストール ディレクトリ内の npm ファイルと npm.cmd ファイルの違いは何ですか? Nodejs インストール ディレクトリ内の npm ファイルと npm.cmd ファイルの違いは何ですか? Apr 21, 2024 am 05:18 AM

Node.js インストール ディレクトリには、npm と npm.cmd という 2 つの npm 関連ファイルがあります。違いは次のとおりです。拡張子が異なります。npm は実行可能ファイルで、npm.cmd はコマンド ウィンドウのショートカットです。 Windows ユーザー: npm.cmd はコマンド プロンプトから使用できますが、npm はコマンド ラインからのみ実行できます。互換性: npm.cmd は Windows システムに固有ですが、npm はクロスプラットフォームで使用できます。使用上の推奨事項: Windows ユーザーは npm.cmd を使用し、他のオペレーティング システムは npm を使用します。

Nodejsをmysqlデータベースに接続する方法 Nodejsをmysqlデータベースに接続する方法 Apr 21, 2024 am 06:13 AM

MySQL データベースに接続するには、次の手順に従う必要があります。 mysql2 ドライバーをインストールします。 mysql2.createConnection() を使用して、ホスト アドレス、ポート、ユーザー名、パスワード、データベース名を含む接続オブジェクトを作成します。 connection.query() を使用してクエリを実行します。最後に connection.end() を使用して接続を終了します。

Nodejs はバックエンド開発言語ですか? Nodejs はバックエンド開発言語ですか? Apr 21, 2024 am 05:09 AM

はい、Node.js はバックエンド開発言語です。これは、サーバー側のビジネス ロジックの処理、データベース接続の管理、API の提供などのバックエンド開発に使用されます。

RAG の 12 の問題点を数え上げ、NVIDIA シニア アーキテクトが解決策を教える RAG の 12 の問題点を数え上げ、NVIDIA シニア アーキテクトが解決策を教える Jul 11, 2024 pm 01:53 PM

検索拡張生成 (RAG) は、検索を使用して言語モデルを強化する手法です。具体的には、言語モデルは回答を生成する前に、広範な文書データベースから関連情報を取得し、この情報を使用して生成プロセスをガイドします。このテクノロジーにより、コンテンツの精度と関連性が大幅に向上し、幻覚の問題を効果的に軽減し、知識の更新速度が向上し、コンテンツ生成の追跡可能性が向上します。 RAG は間違いなく、人工知能研究の中で最もエキサイティングな分野の 1 つです。 RAGについて詳しくは、当サイトのコラム記事「大型モデルの欠点を補うことに特化したRAGの新展開とは?」を参照してください。このレビューはそれを明確に説明しています。」しかし、RAG は完璧ではなく、ユーザーはそれを使用するときにいくつかの「問題点」に遭遇することがよくあります。最近、NVIDIA の生成 AI 高度なソリューション

See all articles