このサーバにアクセスした場合、
全てのケースでkaiseki.html
が吐き出されるでしょう。
Webサーバというのは、アクセスしたURLのパス名を参照して、
何を返すのか、もしくは動作が変化するのが普通です。
これに従ってstyle.css
も返すように動作を変えましょう。
上記のコードの引数reqはClass: http.IncomingMessageのインスタンスです。
(リファレンスのhttp.createServerから普通に追えるので勉強していきましょう)
http.IncomingMessage
の中を漁ると、
req.url
にリクエスト時のURLのパス名が拾える事がわかります。
サンプルでは'/status?name=ryan'
のような文字列ですが、/style.css
みたいな文字列になっていることでしょう。
従って、下記のように書き換えれば動くんじゃないでしょうか。
JavaScript
1var server = require('http').createServer(function(req, res){
2 if (req.url === '/style.css') {
3 res.writeHead(200, {"Content-Type": "text/css"});
4 var output = fs.readFileSync("./style.css", "utf-8");
5 res.end(output);
6 } else {
7 res.writeHead(200, {"Content-Type": "text/html"});
8 var output = fs.readFileSync("./kaiseki.html", "utf-8");
9 res.end(output);
10 }
11});
ファイルが増える度にif文足すんかという話になるので、
実際はExpressみたいなWebフレームワークを導入するのが一般的です。
あまりrequire('http')
で頑張るのも辛いので、凝ったことをしたければExpressの導入を検討してみてください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/04 09:31