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

ノード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 までご連絡ください。
アンカーポジショニングは、ソースの順序を気にしませんアンカーポジショニングは、ソースの順序を気にしませんApr 29, 2025 am 09:37 AM

アンカーの位置決めがHTMLソースの順序を避けているという事実は、コンテンツとプレゼンテーションの間の懸念の別の分離のため、非常にCSS-Yです。

マージンは何ですか:40px 100px 120px 80pxは意味しますか?マージンは何ですか:40px 100px 120px 80pxは意味しますか?Apr 28, 2025 pm 05:31 PM

記事では、CSSマージンプロパティ、特に「マージン:40px 100px 120px 80px」、そのアプリケーション、およびWebページレイアウトへの影響について説明します。

さまざまなCSSボーダープロパティとは何ですか?さまざまなCSSボーダープロパティとは何ですか?Apr 28, 2025 pm 05:30 PM

この記事では、カスタマイズ、ベストプラクティス、および応答性に焦点を当てたCSSボーダープロパティについて説明します。主な議論:Border-Radiusは、レスポンシブデザインに最も効果的です。

CSSの背景とは何ですか、プロパティをリストしますか?CSSの背景とは何ですか、プロパティをリストしますか?Apr 28, 2025 pm 05:29 PM

この記事では、CSSのバックグラウンドプロパティ、Webサイトの設計の強化における使用、および避けるべき一般的な間違いについて説明します。重要な焦点は、バックグラウンドサイズを使用したレスポンシブデザインです。

CSS HSLの色とは何ですか?CSS HSLの色とは何ですか?Apr 28, 2025 pm 05:28 PM

記事では、CSS HSLの色、Webデザインでの使用、およびRGBよりも利点について説明します。主な焦点は、直感的な色の操作を通じて設計とアクセシビリティを向上させることです。

CSSにコメントを追加するにはどうすればよいですか?CSSにコメントを追加するにはどうすればよいですか?Apr 28, 2025 pm 05:27 PM

この記事では、CSSでのコメントの使用について説明し、シングルラインとマルチラインのコメント構文を詳述しています。コメントはコードの読みやすさ、保守性、コラボレーションを強化するが、適切に管理されていないとウェブサイトのパフォーマンスに影響を与える可能性があると主張しています。

CSSセレクターとは何ですか?CSSセレクターとは何ですか?Apr 28, 2025 pm 05:26 PM

この記事では、HTML要素のスタイリングのCSSセレクター、その種類、および使用法について説明します。 IDとクラスのセレクターを比較し、複雑なセレクターでパフォーマンスの問題に対処します。

どのタイプのCSSが最優先事項を保持していますか?どのタイプのCSSが最優先事項を保持していますか?Apr 28, 2025 pm 05:25 PM

この記事では、CSSの優先順位について説明し、特異性が最も高いインラインスタイルに焦点を当てています。 CSS競合を管理するための特異性レベル、オーバーライド方法、およびデバッグツールを説明します。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

メモ帳++7.3.1

メモ帳++7.3.1

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