ホームページ > ウェブフロントエンド > CSSチュートリアル > ノードJavaScriptをブラウザのJavaScriptと比較します

ノードJavaScriptをブラウザのJavaScriptと比較します

William Shakespeare
リリース: 2025-03-14 09:37:10
オリジナル
201 人が閲覧しました

ノードJavaScriptをブラウザのJavaScriptと比較します

フロントエンドの開発者にとって、node.jsのマスタリングは依然として貴重なスキルです。 Denoはサーバー側のJavaScriptの代替品を提供していますが、Node.jsの広範なエコシステムはその継続的な関連性を保証します。この記事では、ブラウザベースのJavaScriptに精通しており、node.jsを使用してサーバー側の開発を検討したいと考えています。 Node.jsとNPM初心者にとって、Smashing MagazineのJamie Corkhillの「Getering of Node」は素晴らしいリソースです。

非同期JavaScript:重要な違​​い

ブラウザJavaScriptは、多くの場合、非同期コードを最小限に使用します(たとえば、API呼び出しのためにfetch )。ただし、node.jsは、ほとんど常に非同期プログラミングが必要です。非同期コールバックに依存しているシングルスレッドイベントループは、その設計の基本です。この非同期ファーストアプローチは、node.jsの成功にとって重要でしたが、同期コーディングに慣れている人々に学習曲線を提示します。

クイズアプリの例を構築します

node.jsの概念を説明するためのシンプルなクイズアプリを構築しましょう。より完全なバージョンはGitHubで利用できます。このアプリは、クイズ、質問、回答用のテーブルを備えたSQLiteデータベースを使用しています。各質問には複数の答えがあり、そのうちの1つだけが正しいです。 SQLiteにはブールタイプがありません。 falseには0、Trueには1を使用します。

まず、NPMを初期化し、 sqlite3パッケージをインストールします。

 npm init -y
npmインストールsqlite3
ログイン後にコピー

ES6モジュールを有効にするには、 "type":"module"package.jsonに追加します。 migrate.jsを作成して、データベーステーブルを設定します。

 // migrate.js
「sqlite3」からsqlite3をインポートします。

db = new sqlite3.database( "quiz.db");
db.serialize(function(){
  // ...(データベーススキーマの作成と初期データ挿入)...
});
db.close();
ログイン後にコピー

このスクリプトはテーブルを作成し、サンプルデータを入力します。 node migrate.jsで実行します。

非同期課題のナビゲート

データベースを照会しましょう。 index.jsでは、 sqlite3をインポートし、データベースオブジェクトを作成し、 get関数を使用します。

 // index.js
「sqlite3」からsqlite3をインポートします。

db = new sqlite3.database( "quiz.db");
db.get( `select * from quiz where quizid = 0`、(err、row)=> {
  if(err){
    console.error(err.message);
  }
  console.log(row);
  db.close();
});
ログイン後にコピー

これにより、クイズデータがコンソールに印刷されます。

コールバックの落とし穴を避けます

IDでクイズを取得するための関数getQuiz(id)を作成しましょう。非同期実行により、コールバック内から結果を単に返すことは間違っています。

 //不正 - これを避けてください!
関数getquiz(id){
  // ...(コールバック付きのデータベースクエリ)...
  返品結果; //結果は未定義になります!
}
ログイン後にコピー

正しいアプローチでは、コールバックを使用して非同期結果を処理します。

関数getquiz(id、callback){
  // ...(データベースクエリ、結果を伴うコールバックを呼び出す)...
}
getquiz(0、(quiz)=> {
  console.log(quiz);
});
ログイン後にコピー

単純なコールバックを超えて:約束とasync/await

複数の非同期呼び出しをチェックすると、「コールバックヘル」につながります。約束はよりクリーンなソリューションを提供します:

関数get(params){
  // ...(約束にラップされたデータベースクエリ)...
}

get({table: "Answer"、column: "AnswerId"、value:2})
  。それから(...)
  。それから(...)
  。それから(...)
  。キャッチ(...);
ログイン後にコピー

Async/awaingは、非同期コードをさらに簡素化し、同期コードに似ています。

 async関数printquizfromanswer(){
  const回答= await get({table: "Answer"、column: "AnswerId"、value:2});
  // ...(同様に後続の呼び出しを待っています)...
}

printquizfromanswer();
ログイン後にコピー

トップレベルの待望(最近のnode.jsバージョンで利用可能)により、さらに簡潔なコードが可能になります。

SQL結合で最適化します

効率のために、SQL結合を使用して、単一のクエリで関連データを取得します。

 function quizfromanswer(AssensId、callback){
  // ...(sql queryを結合して回答、質問、クイズのデータ​​を取得します)...
}
ログイン後にコピー

これにより、データベース呼び出しの数が減ります。

node.js apis and Conventions

node.jsは、データベースインタラクション、ファイルシステムアクセス、HTTPサーバーなどの新しいAPIを導入します。 package.jsonファイルやエラーファーストコールバックを含むnode.jsの規則を理解することが重要です。 CommonJSモジュールとESモジュールの違いも注意が必要です。

サーバー側の考慮事項

node.jsサーバー側の開発は、エラーが個々のユーザーに影響を与えることが多いクライアント側のJavaScriptとは異なり、例外とセキュリティの脆弱性を注意深く処理する必要があります。

結論

node.jsは、フロントエンド開発者がサーバー側の開発のためにJavaScriptスキルを活用できるようにします。非同期性は学習曲線を提示しますが、同時性と広大なエコシステムの利点はそれを強力なツールにします。非同期JavaScriptの概念、node.js API、およびセキュリティベストプラクティスに慣れてください。

以上がノードJavaScriptをブラウザのJavaScriptと比較しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート