npm ツールを使用して、nodejs に mysql パッケージをインストールできます。具体的なインストール方法: 1. ターミナルを開き、指定されたプロジェクト ディレクトリに入ります; 2. 「npm install mysql --save」コマンドを実行しますダウンロードとインストールが完了するまで待ちます。
このチュートリアルの動作環境: Windows7 システム、nodejs バージョン 14.15.4、DELL G3 コンピューター。
まず、nodejsとnpmをインストールします。
私は簡単な例を書きました。例全体では Express フレームワークを使用しています。Express テンプレートと ejs テンプレートは、node_modules にダウンロードされています。まずディレクトリを見てみましょう:
server.js =》node.jsサーバー起動ファイル
db.js =》データベース操作ファイル
views =》テンプレート ファイルを保存します。つまり、すべてのページが保存されます。
public =》すべての静的リソース (CSS JS 画像など) を保存します
# MySQL への接続方法:
最初のステップは、MySQL という npm パッケージをインストールすることです。このパッケージは公式に提供されており、安定性が保証されています。もちろん、他の npm パッケージもあります。ここでは mysql パッケージのみを使用します。インストール方法は非常に簡単で、コマンドnpm install mysql --save を入力し、ダウンロードが完了するまで待ちます。インストールは成功しました。
#user は mysql のユーザー名を表します
#password は mysql のパスワードを表します
database は、操作するために選択する特定のライブラリの名前を表します
port はポートを表し、空白のままにすることができます。デフォルトは 3306
接続の connect メソッドを呼び出して、接続が成功したかどうかを確認します。失敗した場合は、エラー メッセージを出力して実行を停止します。
接続のクエリ メソッドを呼び出して SQL ステートメントをデータベースに直接送信し、コールバック関数を使用して結果を返します。パラメータは 3 つあります。コールバック関数の最初のパラメータはエラー オブジェクトです。操作が失敗した場合は、操作が停止され、エラー メッセージが表示されます。2 番目のパラメータは、特定の返された結果です。通常の状況では、これは大量の JSON を含む配列です。 3番目のパラメータも配列で、現在のデータがどのデータベースに属しているか、どのテーブルに属しているかなど、各データの説明が含まれます。最もよく使用する 2 番目のパラメーターは当然
# データベース操作の完了後に接続を閉じます
全体のプロセスは非常に単純ですが、問題が 2 つあります。1 つ目は、データベース接続が失われるという問題です。これに遭遇した人がいるかどうかはわかりません。初回接続時はデータベースは正常でしたが、2回目にホームページにアクセスするとデータベースに接続できず、接続が切れたというエラーが表示されます。その理由は、各データベース操作の後にデータベース接続を閉じるためです。データベースに再度アクセスすると、接続が見つからないため、接続を閉じる必要があります。db.js ファイルがホームページにアクセスするたびにアクセスされ、そのたびに新たなつながりが生まれていませんか?はい、最初に接続を生成したコードが db.query 関数内に配置されず、以下に示すように外部に配置されただけです。
これにより、接続は 1 回だけ生成され、接続が閉じられると、2 回目のインタビューは接続されなくなります。関数に配置した後、エクスポートを使用してインターフェースを外部に公開します。ホームページにアクセスするたびに、再度接続を作成するプロセスを経ることになり、そのたびに新しい接続が得られるため、アクセスに問題はありません。実際、接続プールはプロジェクト内で直接使用できます。多くの手間が省けました。
2 番目の問題は、server.js に db.js を導入したことです。
この時点で、mysql.query に 2 つのパラメータがあることがお分かりいただけたかもしれません。 1 つ目は SQL、2 つ目はコールバック関数です。コールバック関数には、実際にはデータベース クエリの結果である result パラメータがあります。クエリ結果を返すために db.js で return を直接使用しないのはなぜなのか、どのような種類のコールバックがあるのかと疑問に思う人もいるかもしれません。
実は、node.js の非同期によって引き起こされる問題がいくつかあります。server.js のコードを次の図のように変更すると、
mysql パッケージのクエリ メソッドは非同期操作であることがわかっているため、次の res.render() メソッドは結果のクエリを待たずに実行されます。結果はまだ出ていません。ページはレンダリングされていますが、データが取得されていないため、エラーが報告されます。したがって、コールバック関数を渡す必要がありました。mysql クエリ メソッドが終了した後、結果はパラメーターを介して自分で作成したコールバック関数に渡されるため、コールバック関数で結果を取得できます。次にレンダリングを実行します。もちろん、この問題に対処するために、サードパーティのパッケージ async を導入して非同期の問題を解決することもできますが、それは人によって異なります。
[関連する推奨事項: "Windows 環境に Nodejs をインストールするにはどうすればよいですか? 》]
以上がmysqlパッケージをnodejsにインストールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。