#前提
この記事は以下の方を対象に記事を書いています。
- npmコマンドについて理解している
- Node.jsの環境構築が完了している
- Node.jsでサーバを立ててリクエスト処理を行いたい
#HTTPリクエスト処理について
自分の備忘録とNode.js初心者用に、
Node.jsサーバ上でHTTPリクエストごとに処理を行う方法を説明します。
まず、HTTPリクエストとは基本的に
クライアント側からWebサーバ側に要求を行うことを指します。
その際、リクエストの種類によってWebサーバ側は
クライアント側に対してレスポンス(返答)を返す必要があります。
index.js
const http = require('http');
続いて、HTTPサーバを構築します。
わかりづらい箇所は随時コメントで説明します。
index.js
//httpモジュールを利用して、HTTPサーバを作成します
//createServer関数の引数であるコールバック関数を通して
//リクエストオブジェクトとレスポンスオブジェクトが利用可能
const http_server = new http.createServer((req, res)=>{
//このスコープ内にサーバの処理を記述します
//レスポンスヘッダの定義の設定
res.setHeader('Access-Control-Allow-Headers','Origin, X-Requested-With, Content-Type, Accept');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
}).listen(8080); //ポート番号の指定
##リクエストごとの処理
クライアントから送られてくるリクエストの種類の情報は、
リクエストオブジェクトに紐付けられている
methodプロパティを参照する必要があります。
index.js
const require = require('require'),
http = require('http');
const http_server = new http.createServer((req, res)=>{
res.setHeader('Access-Control-Allow-Headers','Origin, X-Requested-With, Content-Type, Accept');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
//リクエストごとに処理を記述
if(req.method==="POST"){
//POSTリクエストを受け取った際のレスポンス処理
//リクエストの終了処理
req.on("end", ()=>{
res.writeHead(200, {"Content-Type": "application/json"});
res.write();
res.end();
});
} else if(req.method==="GET"){
//GETリクエストを受け取った際のレスポンス処理
//リクエストの終了処理
req.on("end", ()=>{
res.writeHead(200, {"Content-Type": "application/json"});
res.write();
res.end();
});
}
}).listen(8080);
このリクエスト処理はAPIサーバなどに利用できます。
レスポンスオブジェクトやリクエストオブジェクトのプロパティも
色々と面白いので一度内容を確認するのも面白いかもしれません。
間違いなどご指摘ありましたら気軽にお願いします。