nodeもう少し進めてみます。
今回はhttpのgetリクエストにあるクエリを取得してみたいと思います。
クエリストリングというのは、次のようなURLにあるid
やarticle
のことです。
http://hollywis.com?id=1&type=article
この例では次のデータが格納されています。
-
id:1
-
type:article
やってみる
var http = require('http'); var PORT = 8080; var url = require('url') var pages = [ {id:'1' ,route:'',output:'HelloWorld!\n'}, {id:'2' ,route:'foo',output:'fooのページです\n'}, {id:'3' ,route:'var',output:'varのページです\n'}, {id:'4' ,route:'another page',output: function(){ return 'これが'+this.route+'ページです\n'}} ]; http.createServer(function (request,response){ var id = url.parse(decodeURI(request.url),true).query.id; if(id){ pages.forEach(function(page){ if(id === page.id){ response.writeHead(200,{'Content-Type':'text/html'}); response.end(typeof page.output === 'function' ? page.output() :page.output); } }); } if(!response.finished){ response.writeHead(404); response.end('ページが見つかりません!'); } }).listen(8080); console.log('Server running at http://localhost' + ':' + PORT + '/');
実行して以下にアクセスしてみます。
http://localhost:8080/?id=1
$ hotnode server.js
するとクエリストリングidが取れて別々のページにルーティングできるかと思います。