node.js+React CMS開発-ソフトウェア構成
CMS開発の続きです
- node.js+ReactベースのCMS開発をはじめます
- node.js+React CMS を設計する(外部仕様))
- node.js+React CMS を設計する(データベース仕様))
- node.js+React CMS開発-サーバー雛形を作成
- node.js+React CMS開発-モデル定義
前提条件と目的および採用基準
今回のCMS開発の考え方として
- ビジネス向けのwebアプリケーション開発を想定
- メディアサイトのwebアプリケーションを想定
- 構造化が容易なアーキテクチャー
- ある程度枯れている&開発者が多い
- 手軽に作業ができる&コスト最小
- デザインが自由にできる
- IaaSに載せやすい *管理サイトおよびメディアサイトの両方を想定
- Javascriptだけで開発
Reactは決めの問題
- Vueもいい
- Angularもいい
- JQueryも慣れているしプラグインが豊富
- サービスのNativeアプリは作りたいかも
などなどありますが比較的目にする頻度が高く学習要素の数が少ないReactを採用することとして話をすすめます。 フロントエンドは create-react-app による開発環境が人気があります
管理画面などSPAのフロントエンドは create-react-appによる開発 create-react-app でbuildしたファイルをExpressのstaticファイルとして配置して配信、ExpressサーバーはそのままアプリのAPIサーバーも兼ねてSPA的な動作も実現する。
Node.js + Express
- Javascriptサーバーのデファクトスタンダード
- パッケージが充実してきている
- Expressのmiddlewareがweb開発で必要なものが揃っている
Expressに必要なデファクトスタンダードなmiddlewareを採用する開発 middlewareは別途まとめたい
Database
アプリケーションの内容により適宜選択,express側のmiddlewareやパッケージで吸収できる * MongoDB * MySQL * Postgres * Redis * その他
CMSの記事保存はMongoDB、計数管理などはMySQLに AWSなどで標準的に提供されている運用安定化したもの,携わる技術者の多いものがベスト
構成図