node.js + express (+ TypeScript) の DB接続についての疑問!!

node.js + express (+ TypeScript) の DB接続についての疑問!!

DB接続のサンプルプログラムで、 DB の open をプログラムの最初で、1回行うのを見かけるが、複数同時接続の場合これで良いのか?
app.ts 例


ちょっと、疑問に思ったので、ChatGTP に、聞いてみた。

先ず、最初に
>>> node.js + express でのプログラムは、マルチスレッドで動くのでしょうか?

結論から言うと、
Node.js + Express は基本的に「シングルスレッド」で動作します。
ただし、マルチスレッド的に動かす仕組みも持っています。
....

ふむふむ。
続けて、次の質問じゃ
>>> 1. Node.js の基本モデル でのサンプルプログラム app.js の中で、DBを使う際に、DB の open を最初に1度だけ、行う処理を見かけるが、複数接続の場合でも、この方法で大丈夫でしょうか?

はい、その疑問は とても重要なポイント です。
結論から言うと、
「DBの open をアプリ起動時に1回だけ行う」設計は、ほとんどの場合で正しく、推奨されます。
複数同時接続があっても問題ありません。
ただし、**「DBの種類」と「接続方式」**によって前提が変わります。
....
どうやら、
MySQL / PostgreSQL 等は、これで良いみたいじゃ。
ただし、SQLite は、これでは、NG で、接続ごとに、open、close をするみたいじゃ。
ありがとう ChatGTP

こほん、以上じゃ。

ついで、最初の質問への回答で、少し聞きたいことが出たので、
最初の質問への回答に関して、追加の質問をしてみた。

>>> 質問を、前に戻して、② Cluster(マルチプロセス)の場合について質問します。各 app は、同一の port への着信を待っていいるのでしょうか?

はい、待っています。
そしてそこが Cluster の重要な仕組み です。
結論(まず答え)
Cluster モードでは、すべての worker(各 app)が
「同一の port」で listen() します。
それでも問題ないように、Node.js が内部で振り分けしています。
....
ふむふむ。

話を、最初の疑問点に戻して、
node.js + express (+ TypeScript) の DB接続 の場合の、
アプリ app.js での DB open 、close は、使う DB エンジンによって、使い分けが必要。
MySQL、PostgreSQL では、app.js の最初で1回 open を行う。
app.js の終了のときに、必要なら、1 回 close を行う。

SQLite3 の場合は、ネットワークから、アクセスがあった場合毎に、open、close を行う。
以上じゃ!

でもまあ、SQLite3 でも、ローカルで、勉強用であれば、MySQL、PostgreSQL の様に作っておいても大丈夫じゃろう。

このブログ記事について

このページは、おんちゃんが2026年1月 9日 11:58に書いたブログ記事です。

ひとつ前のブログ記事は「PHP Laravel の勉強を始める。」です。

次のブログ記事は「Vite + React で、クライアントサイド( ブラウザー ) での開発を試してみた。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

月別 アーカイブ

ウェブページ

サイトナビ