はかせだけど博士じゃない

無職が就活しないでプログラミングとかする

N予備校のプログラミング入門メモ4

はじめに

昨日さぼった

3章 サーバーサイドプログラミング入門

06.HubotとSlackアダプタ

npm cache clean --forceしたりyo等を入れなおしたりしたがうまくいかなかったので、Hubotは置いておいて進めることにした。

07.モジュール化された処理

モジュール化について学んだ。

08.ボットインタフェースとの連携

hubot-todoディレクトリを作成してyo hubotしたらなぜかプロジェクトが作成できた。ディレクトリ名が悪かったのか? 謎。

練習問題の方で、cloneしてきたプロジェクトのnpm installがうまくいかなかったがnpm cache clean --forceして何度かnpm installしていたら通った。そういうもんだと思っておく。

一覧が空の時にメッセージを表示する処理を以下のように書いた。

arr.join('\n') || '空の時のメッセージ'

動作することを確認したが、何か変なことが起きても困るので配列の要素数を確認して分岐するように修正した。

09.同期 I/O と非同期 I/O

  • fsモジュールを使ってファイルに書き出して前回までに作成したTODOのタスクの永続化を考える
  • fs.appendFile
  • fs.appendFileSync

VSCodeでCtrl + Alt + ↓でカーソルが増やせるっていうやつを以前やったのを思い出した。

10.例外処理

  • JSON.stringify
  • JSON.parse
  • try-catch文
  • fsモジュールのunlink関数

todoのコードにファイルの書き込みと読み込み機能を追加したのでhubot-todoにtodoをインストールしなおす。npm install ../todoでエラーが出たがカレントディレクトリが間違っていただけだった。

11.HTTP サーバー

mkdir -p

mkdirコマンドに-pというパラメーターが急に出てきた。

mkdir -p ~/workspace/node-js-http
cd ~/workspace/node-js-http
npm init

いつもworkspaceディレクトリに移動してからディレクトリを作成していたが、-pパラメーターを与えることでサブディレクトリを含めて一気に作成できるらしい。

curl -A

curl -A "dummy" http://localhost:8000とするとuser-agentdummyにできる。

12.ログ

  • console.info
  • console.warn
  • console.error

ログレベルによって使い分ける

teeコマンド

以下のコマンドでログをファイルに残す。

node index.js 2>&1 | tee -a application.log

teeは標準出力しつつファイルに出力するコマンド。-aオプションをつけるとファイルに追記する。

13.HTTPのメソッド

  • switch文を使ってGETメソッド、POSTメソッドそれぞれのリクエストの場合の処理を書いた
  • curlコマンドで-dオプションをつけるとPOSTメソッドで送信する
  • curl -X DELETE http://localhost:8000/messagesでDELETEメソッドでリクエストが送れる