「React,Angular,Vue.js,React Nativeを使って学ぶ はじめてのフロントエンド開発」を写経してみる(2)「第5章 フロントエンドJavaScript開発のためのサーバ構築」
前回は、第3章について写経して、Javascriptのフロントエンド用フレームワークReactの環境構築を行った。
http://twosquirrel.mints.ne.jp/?p=22642
引き続き、以下の本の第5章の写経にtryしてみる。
この本を買った理由は、
(1)チャットアプリのサーバを、Firebaseで作成し、
(2)フロントエンドを、React, Vue, Angularで作る
とうたっているからである。このうち、サーバを作成するのが第5章である。
がんばってやってみたい。
React,Angular,Vue.js,React Nativeを使って学ぶ はじめてのフロントエンド開発
原 一浩 (著), taisa (著), 小松 大輔 (著), 永井 孝 (著), & 4 その他
技術評論社 (2018/5/9)
紙の本の価格: ¥ 2,462
Kindle 価格: ¥ 2,280
ソースコードは、以下に記載されているので大変ありがたい。
https://github.com/okachijs/jsframeworkbook/tree/master/2_5_server
(開発環境)
Windows 8.1 Pro
VisualStudioCode
(構築した環境)
firebase-tools 3.18.0
express 4.16.3
cors 2.8.4
(1)チャットアプリケーションの概要
目指すアプリの絵を手書きでかいてみるのが一番よいと思われる。そういうソフトもあるらしいが。
Slackの簡単Versionのようなチャットアプリ作成を目指す。
1.チャンネルの切り替え
2.チャンネル内のメッセージ表示
3.チャンネルへのメッセージ送信
(2)チャットサーバの機能
1.チャンネルの作成
2.チャンネル名一覧の取得
3.チャンネル内メッセージ一覧の取得
4.指定チャンネルへのメッセージ追加
5.初期状態に戻す
チャットサーバのRESTful API
JSONデータの送受信のみとする。
JSONは、データフォーマットの一種ですが、詳しいことはこちらを参考に。。。
チャンネル内メッセージ一覧の取得
/channels/チャンネル名/messages GET
(3)Firebaseによるチャットサーバの構築
●Firebase Realtime Database
NoSQLデータベースであり、JSONデータを保存、オフラインにも対応。
●Firebase Cloud Functions
●Firebase Hosting
●Firebase Authentication
(4)Firebaseプロジェクトの作成
自分のgmailアカウント(なければ作成する)で以下のfirebase console画面にログイン。
https://console.firebase.google.com
新しいプロジェクトを作成。名前は demoapp とした。
(5)Firebase CLIのインストール
VisualStudioCodeのcmd.exeで以下を入力
npm i -g firebase-tools@3.18.0
firebase login
自分のgmailアカウントでログインする。
(4)Firebaseプロジェクトの初期化
今回は、
C:/js/chat-server/ フォルダ を作成し、その中で、VisualStudioCodeを開く。
さらに、VisualStudioCodeの画面でCtrl + @ で、cmd.exeの画面を出す。
●Hostingの設定
cmd.exeの画面で、以下を入力
firebase init hosting
Proceed? にはY
次に、以下のような画面になるので、上記で作成したdemo-app を選択。
あとは、Enterを2回押せばOK。
すると、上図のように、public/ フォルダと、4つのファイルが作成される。
●Functionsの設定
firebase init functions
一度、なんかエラーが出たので、言われた通りに、
firebase login –reauth
して、いろいろ許可してから、再度、
firebase init functions
選択肢は以下の通り
最後のdependenciesのインストールに数分かかるが、終了時は以下のような画面になり、functions/ フォルダや、いくつかのファイルが作成される。
(5)以下、チャットサーバのRESTful API作成を行っていく。
関連モジュールのインストール。
cd functions
npm i express cors
Express : APIのエンドポイントを実装
cors : クロスドメイン通信の許可
(6)FunctionsおよびAdmin SDKモジュールのインポート
functions/index.js
以下、同様に、functions/index.js に追記していく。
(7)Expressモジュールのインポートとインスタンス化
CORSモジュールのインポートとロード
(8)ユーザ情報を取得
functions/index.js
打ち込み間違いをしていないだろうか、、、
(9)チャンネルを作成するAPI
functions/index.js
(10)チャンネル一覧の取得
functions/index.js
(11)指定チャンネルへメッセージを追加
functions/index.js
(12)チャンネル内メッセージ一覧の取得
functions/index.js
(13)初期状態に戻す
functions/index.js
(14)RESTful APIを利用可能にする
functions/index.js
(15)RESTful APIのテスト
firebase serve --only functions
curlをWindowsに頑張って入れた。
curl -X POST http://localhost:5000/demoapp-xxxxxxxx/us-central1/v1/reset
http://localhost:5000/demoapp-bc57f/us-central1/v1/channels
Ctrl + C => Enter でサーバ停止。
(16)Functionsの公開
firebase deploy --only functions
うまくいかず、、、
その後、本家サイトの
https://github.com/okachijs/jsframeworkbook/tree/master/2_5_server
のコードをコピペしたつもりだが、うまくいかず。。。
余計なindex2.jsファイルを削除して、再度上記コマンド
数分かかった。
curl -X POST https://us-central1-demoapp-xxxxxxf.cloudfunctions.net/v1/reset
{“result":"ok"} というレスポンスが返って来ればOK.
面白かったが、だいぶ疲れた。
次は、第6章 React入門&徹底活用を写経してみたい。
React,Angular,Vue.js,React Nativeを使って学ぶ はじめてのフロントエンド開発
原 一浩 (著), taisa (著), 小松 大輔 (著), 永井 孝 (著), & 4 その他
技術評論社 (2018/5/9)
紙の本の価格: ¥ 2,462
Kindle 価格: ¥ 2,280
ソースコード
https://github.com/okachijs/jsframeworkbook/tree/master/2_5_server
ディスカッション
コメント一覧
まだ、コメントがありません