山傘のプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

[N予備校]【2019年度】プログラミング入門 Webアプリ その 18

【2019年度】プログラミング入門 Webアプリ

今回から第4章に入ります。3章のサーバーサイドプログラミングの入門ですら難しく感じたので、不安ですね。

第4章 実践サーバーサイドプログラミング

01. Web フレームワーク

現在の主流となっている Web フレームワークは下の三つのようですね。個人的には Ruby を勉強しているので、後々、railsを使ってみたいです。

paiza.hatenablog.com

講座では、Express を使って Web アプリケーションを作っていきます。

expressjs.com

また、テンプレートエンジンは Pug を使います。

Express

Express をインストールして、プロジェクトを作ったときのフォルダはこのようになりました。

f:id:yamakasa3:20190424231049p:plain
フォルダの構成

見た目は Pug で整えて、中身は JavaScript で記述してくようですね。

デバッグの表示
const debug = require('debug');
const debugInfo = debug('module:info');
// 1秒ごとにログに出力
setInterval(() => {
  debugInfo('some information');
}, 1000);
const debugError = debug('module:error');
setInterval(() => {
  debugError('some error');
}, 1000);

f:id:yamakasa3:20190424232613p:plain
デバッグ

02. Express の API

Express のセキュリティに関する API を使っていきます。

GitHub - helmetjs/helmet: Help secure Express apps with various HTTP headers

helmet というモジュールを用いて脆弱性に対処します。具体的には Express の Router オブジェクトを使います。

03. GitHub を使った外部認証

OAuth2.0 を用いて、GitHub などのアプリケーションで第三者アプリケーションで認証などを行います。よく使われているやつですね。

認証するための処理のなかで、Node.js のイベントループの仕組みを理解する必要がありました。

実装したところ、エラーが出て認証ができませんでした。

f:id:yamakasa3:20190425155447p:plain
エラー

N予備校では、変更後の完成したソースコードが提供されていないので、タイポとかのミスを差分で見つけることができないですね。

もう一度 GitHub でアプリケーションの登録を行ったところ、認証ができました。

感想

4章になってからさらに高度な内容になっていると思いました。引き続き頑張りたいです。