自分のパソコンで行う実習 / local-1
他人や別の会社の書類を返してしまうJavaScriptを直す
利用者と書類が存在し、会社と持ち主が同じときだけ許可する条件を書き、許可・拒否・情報不足を同じコードで確認する。
1. 準備する
書類アプリに渡す利用者の情報(actor)と書類の情報(report)を使い、canReadという関数の誤りを直します。本文と同じJavaScriptを、自分のパソコンのNode.jsという実行ソフトで動かします。ログイン済みならactorに利用者情報が入り、未ログインならnullになるという前提の練習です。
本文の知識を、この実習でどう使うか
利用者と書類の情報がなければ、会社や持ち主を比較できません。情報の有無を先に調べ、その後で二つのIDを比較します。
- 利用者と書類
- 存在・会社・持ち主を確認
- 六つの結果を比較
結果が違ったときに考えること:IDだけが同じ別会社の例と、情報がの例を見ます。実行エラーで止まることは、正しく拒否できたこととは違います。
編集するファイルと、確認する結果
- 自分で編集するもの
- repair.mjs
- 提出するもの
- repair.mjs、observed.json
- 結果を確認する方法
- 最後の実行コマンドが結果ファイルを作ります。結果を手で正解に書き換えず、編集元を直して再実行し、最新のファイルを選んで提出します。
編集する箇所をファイル内で見つける
エディターの検索(WindowsはCtrl+F、MacはCommand+F)で下の文字を探します。行番号は配布直後の目安です。行を追加した後は文字や関数名で探してください。下のコードは修正前の見本です。
repair.mjs:配布時の4行目付近
return actor !== null;JavaScriptの読み方:const・letは値に名前を付ける、functionは処理のまとまりを作る、returnは結果を返す命令です。===は等しいか、&&は両方、||はどちらかを表します。trueとfalseが何の可否なのかは、結果の項目名と一緒に読みます。
エディターで変更後はWindowsならCtrl+S、MacならCommand+Sで保存します。コードの記号は半角を使います。エディターの文章に実行コマンドを貼らず、コマンドはPowerShellまたはターミナルへ入力してください。
この実習では、repair.mjs、observed.jsonと、予測・変更前後の結果・理由を提出します。
ファイルの取得と端末での実習はこのまま進められます。結果を保存するにはログインが必要です。別タブでログインする(ログイン後はこのページを再読み込みしてください。)
- 実習ファイルをダウンロードして展開します。
下のZIPを「ダウンロード」フォルダーに保存します。ZIPを右クリックして「すべて展開」を選びます。 展開したフォルダーの中に repair.mjs が見えることを確認します。既に同じ名前のフォルダーがある場合は、前回の編集を上書きしないよう別の名前で展開してください。
この実習のファイルを受け取る(ZIP) - コマンドを入力する画面を開きます。
スタートメニューで「PowerShell」と検索して開きます。管理者として実行する必要はありません。 コマンドは上から順に貼り付けてEnterで実行します。先頭の > や $ といった表示は入力しません。
- 展開したフォルダーへ移動します。
通常の保存場所なら、次のコマンドを使えます。違う名前や場所へ展開した場合は、下の対処方法を使ってください。
Set-Location -LiteralPath "$HOME/Downloads/wha-U-CODE-01" Get-ChildItem表示された名前に repair.mjs があれば、操作する場所は合っています。
- Node.jsを準備します。
Node.jsはJavaScriptをパソコンで動かすソフトです。nodejs.orgの公式Downloadsから、お使いのOS向けのNode.js 24 LTSインストーラーを取得してインストールします。ターミナルを開き直し、下のコマンドでv24から始まるバージョンが出るか確認します。追加パッケージは使いません。確認後、上の移動コマンドで実習フォルダーへ戻ります。
node --version
準備で止まったときの確認方法
- 「フォルダーが見つかりません」:ZIPの中ではなく展開したフォルダーを開きます。エクスプローラーのアドレス欄をクリックしてパスをコピーし、Set-Location -LiteralPath 'コピーしたパス' の引用符内へ貼ります。
- 「ファイルが見つかりません」:一覧にファイルがなければ、同じ名前の内側のフォルダーを開いていないか確認します。上の移動操作をそのフォルダーへやり直します。
- 編集したのに変わらない:ファイルを保存し、拡張子が .py.txt や .txt.rtf になっていないか確認します。MacのTextEditでは「フォーマット→標準テキストにする」を選びます。コードを編集するときは「編集→自動置換」のスマート引用符とスマートダッシュをオフにし、半角の記号が別の文字に変わらないようにします。
準備に時間がかかっても理解度を下げることはありません。