node.js + express + TypeScript サーバーサイドの app の Tips!!
おんちゃんが、node.js + express + TypeScript サーバーサイドの app を書いているときに、知った事を、書いてみました。
1. サーバーサイドプログラムでおんちゃんが想像する、必要な機能や、スキルを挙げてみた。
1) html テンプレートを使った、html ページの表示。
ejs を利用する。
2) DB 操作。
データの、 新規、更新、削除 と、一覧。
3) 画像ファイルのアップロード。
及び、画像ファイルの削除。
4) クッキーの使用。
5) 認証
6) バックグラウンド(別プロセス)での、メール送信。
及び、メール文面のテンプレートを使った、文章の作成。日本語対応。
7) node,js の ssl 対応は?
8) ハッキング対策。
SQL Injection 対策、クロスサイトインジェクション対策、と、form アクセスへのなりすまし対策
9) クライアントサイドからの非同期通信への応答。
10) テキストファイルの操作、及び、その時の排他制御。
ここからは、エキスパート。
1) node.js のクラスター構成。
2) クラスターでの排他制御。
最後は、
1) 公開サーバーへのデプロイ。
単独か、niginx 等との併設か?
2. Basci 認証のプログラム。
認証時にの username、password のチェックは、express-basic-auth.basicAuth callback の中で書ける。
注1) express-basic-auth.basicAuth を使うと、
req.auth: { user: string, password: string} が、上がってくる。
ただし、そのまま、 req.auth では、コンパイルエラーになるので、
declare global {
namespace Express {
interface Request {
....
を定義しておく。
注2) 公開サーバーで実際に使う場合は、これだけでは不十分で、
エラー回数を決めて、それをオーバーすると、無視する処理が必要。
google で、"express-basic-auth callback で、認証エラー回数を制限する" を検索すると教えてくれる。