Node jsで簡単にServerを作ってみる①
Server起動
nodejsでserverを簡単に作ってみました!
簡単に作ったので複雑な記述は入ってないです
起動はnodemon
でしました!
serverを作るためにはhttpモジュールを使います!
ローカル環境でhttpsを使うと開発環境設定が難しくなるので開発する時だけはhttpを使います!
const http = require("http");
const http2 = require("http2");
次、createServer
でサーバを作ります!
server portを決めてserverを開きます!listen
でserver portを設定します
const server = http.createServer((req, res) => {
console.log("起動中...");
}).listen(8080);
nodemone 2-http.js
で起動するとserverが起動していることが見れます
この時ブラウザでぐるぐる曲がるだけてページが出ないです
serverでresponseを設定してないとブラウザはブラウザでぐるぐる曲がって落ちちゃいます!
resでserverの反応を設定します!
http.createServer((req, res) => {
console.log("起動中...");
res.write("Hello!!!");
res.end();
}).listen(8080);
res.end();
を呼び出してserverがこれ以上データを送信しないことを教えて
serverのresponseが完了させてページのローディングを終わりにします!
8080で Hello!!!
が見えるようになりました!
英語だけではなく違う言語を使いたい時はwriteHead
を使って追加したらできます!
res.writeHead(200, { "content-Type": "text/html; charset=utf-8" });
HTML呼び出す
今回はurlによるhtmlを読んできます!
htmlを使うためはsetHeader
設定する必要があります!上にあるwriteHead
でもうすでに設定した場合は別で設定は必要ないです!
res.setHeader("Content-Type", "text/html");
htmlを呼び出す時はnodeモジュールのfs
が必要です!
一応urlを先に設定してcreateReadStream
を使ってディレクトリにあるhtmlを持ってきます
その後、pipe()
でresを連結させます!
const http = require("http");
const fs = require("fs");
const server = http.createServer((req, res) => {
console.log("起動中...");
res.writeHead(200, { "content-Type": "text/html; charset=utf-8" });
const url = req.url;
if (url === "/") {
const read = fs.createReadStream("./html/index.html");
read.pipe(res);
}
});
server.listen(8080);
この時は res.end();
を消さないとダメです!
pipe()
のストリームの終了を自動的に処理するためです。
pipe()
メソッドは内部でstream.on('end', callback)
を使用してデータ送信が終了するとres.end()
を呼び出します。したがって、pipe()
を使用した後に別途res.end()
を呼び出す必要ないです!
url設定で違うページのhtmlも呼び出します!
const server = http.createServer((req, res) => {
console.log("起動中...");
res.writeHead(200, { "content-Type": "text/html; charset=utf-8" });
const url = req.url;
if (url === "/") {
const read = fs.createReadStream("./html/index.html");
read.pipe(res);
} else if (url === "/project") {
const read = fs.createReadStream("./html/project.html");
read.pipe(res);
} else {
const read = fs.createReadStream("./html/not-found.html");
read.pipe(res);
}
});
server.listen(8080);
結論
Node.jsで簡単なserverを作る方法とURLによるhtmlページを呼び出す方法を調べました!
これより複雑な機能もやってみたいと思います!
Discussion