node.js + express + TypeScript サーバーサイドの app の Tips!!
おんちゃんが、node.js + express + TypeScript サーバーサイドの app を書いているときに、知った事を、書いてみました。
1. サーバーサイドプログラムでおんちゃんが想像する、必要な機能や、スキルを挙げてみた。
1) html テンプレートを使った、html ページの表示。
ejs を利用する。
2) DB 操作。
データの、 新規、更新、削除 、検索と一覧。
検索&一覧で、1ページに収まらない時は、ページめくりをする。
3) 画像ファイルのアップロード。
及び、画像ファイルの削除。
4) クッキーの使用。
5) 認証
6) バックグラウンド(別プロセス)での、メール送信。
及び、メール文面のテンプレートを使った、文章の作成。日本語対応。
7) node,js の ssl 対応は?
8) ハッキング対策。
SQL Injection 対策、クロスサイトスクリプト対策、と、form 送信のなりすまし対策
9) クライアントサイドからの非同期通信への応答。
10) テキストファイルの操作、及び、その時の排他制御。
この場合、排他制御が、必須みたい。方法は、いくつかあるみたいだが、
proper-lockfile のサンプルを、google ai で、教えてもらうのが、簡単じゃ?
perl のフィルロックと同じ要領みたい。ただし、ロックの解除し忘れ対策として、必ず、一定時間が経過したら、
フィルロックが自動で消える指定をすることが大事。
11) データエントリーページ。
入力データのチェックは、ブラウザー上とサーバー上のダブルで行う。
ブラウザーの戻るボタンで、戻った場合も対応する。システム上に重複したデータが登録されない事。
とにかく一般的ユーザは、でたらめな操作をする事を前提に、プログラムすることが需要!!
ここからは、エキスパート。
1) node.js のクラスター構成。
2) クラスターでの排他制御。
最後は、
1) 公開サーバーへのデプロイ。
単独か、niginx 等との併設か?
2. Basci 認証のプログラム。
認証時にの username、password のチェックは、express-basic-auth.basicAuth callback の中で書ける。
TypeScriptの最近のブログ記事
Vite + Vue.js + Typescript で、クライアントサイドでのアプリ開発環境を作成する。
Vite + React + Typescript 開発環境 で少し、クライアントサイドのアップリ作成を試してみたが、なんとなくしっくりしない。
ならば、Vue.js を使うのはどうかと思って、試してみた。
Vite を使うのが、2026 現在のおすすめのようで、React と同じ要領で作成できる。
google で、[Vite + Vue.js + Typescript 開発環境作成] を問い合わせした回答に従って、開発環境を作成してみた。
1. インストール
google の回答にしたがって、環境を構築するだけ。
$ cd ~/www/vuejs --- 適当な、Vue.js の開発ディレクトリー。
$ npm create vite@latest my-vue-app
Project name: my-vue-app
Select a frame work: Vue
Select a variant: TypeScript
Use rolldown-vite(Experimental): No
Install with npm and Start now: Yes
Vite + React で、クライアントサイド( ブラウザー ) での開発を試してみた。
今回は、ブラウザー上で動作する Javascript の開発を試す。
サーバーサイドの開発か、クライアントサイドの開発か、あまり明言せずに書いているページが多いので、こんがががったぞね。
React の開発をするには、 Vite を使うのが良いらしい。
参考にさせてもらったのは、下記のぺーじです。ありがとう!!
【図解解説】0からReact開発して基礎をマスターできる最強チュートリアル 映画アプリ編【初心者完全版】
しかし、この環境はすごい。
Vscode で、src/App.tsx を変更すると、
即座に、ブラウザーに反映される。
注意しないと行けないのは、ここで作った、ファイルは、最終的には、 build して、
サーバー上にアップロードしないと使えないみたいじゃ。
google ai さんに教えてもらった。
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
こほん、以上じゃ。