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

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

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

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

あと2回くらいで3章を終わらせていきたいです。

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

10. 例外処理

番号の割り振りが変わったような気がしますが、自分で割り振ったものとして進めていきます。

ファイルの読み込みや書き込みのときに使う機会のある、try-catch 文を使用しました。

TODO アプリのやるべきタスクを JSON ファイルに書き出して、ボットを再起動してもタスクが管理できるようにファイルを読み込むようにしました。

'use strict';
// key: タスクの文字列 value: 完了しているかどうかの真偽値
let tasks = new Map();

const fs = require('fs');
const fileName = './tasks.json';


// 同期的にファイルから復元
try {
  const data = fs.readFileSync(fileName, 'utf8');
  tasks = new Map(JSON.parse(data));
} catch(ignore) {
  console.log(fileName + 'から復元できませんでした');
}

11. HTTP サーバー

ローカル環境でサーバーをたてました。

'use strict';
const http = require('http');
const server = http.createServer((req, res) => {
  res.writeHead(200, {
    'Content-Type': 'text/plain; charset=utf-8'
  });
  res.write('<!DOCTYPE html><html lang="ja"><body><h1>HTMLの一番大きい見出しを表示します</h1></body></html>');
  res.end();
});
const port = 8000;
server.listen(port, () => {
  console.log('Listening on ' + port);
});

12. ログ

ログは情報の記録として残しておくものです。以下の三つのログの種類があります。

info: 普段の情報

warn: 問題となる可能性のある情報

error: 直ちに対応が必要な情報

'use strict';
const http = require('http');
const server = http.createServer((req, res) => {
  res.writeHead(200, {
    'Content-Type': 'text/plain; charset=utf-8'
  });
  res.write('<!DOCTYPE html><html lang="ja"><body><h1>HTMLの一番大きい見出しを表示します</h1></body></html>');
  res.end();
});
const port = 8000;
server.listen(port, () => {
  console.log('Listening on ' + port);
});

13. HTTP のメソッド

情報セキュリティスペシャリストを勉強していたときにも出てきた HTTP ですね。PUT メソッドとか勉強した覚えがあります。

感想

GitHub, Linux, JavaScript, HTML, CSS の本が欲しいですな。