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 サーバー
http
モジュールcreateServer
関数- 公式ドキュメント
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-agent
をdummy
にできる。
12.ログ
console.info
console.warn
console.error
ログレベルによって使い分ける
teeコマンド
以下のコマンドでログをファイルに残す。
node index.js 2>&1 | tee -a application.log
tee
は標準出力しつつファイルに出力するコマンド。-a
オプションをつけるとファイルに追記する。