nodeもう少し進めてみます。

今回はhttpのgetリクエストにあるクエリを取得してみたいと思います。

クエリストリングというのは、次のようなURLにあるidarticleのことです。

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が取れて別々のページにルーティングできるかと思います。

Receive the latest news in your email
Table of content
Related articles