これまでの内容で、テンプレートを使ってサーバー上でHTMLを準備して表示するということができるようになりました
では、Webサービスを考えてみましょう
多分まだこれでは作りたいものは実現できないのではないでしょうか
実際のWebサービスはクライアント側との値のやり取りがもっと行われるはずです
今回はサーバーに値を送る方法を勉強します
URLに値を付け加えて送る
WebAPIをたたく際にURLに値を付け加えてサーバーへ送信したのを覚えていますか?
今回勉強するのはその仕組みと同じです
今回のコードです
app.jsに変更を加えています(index.ejsも少し変数を変更しました)
URLに値を付け加えておくる場合は「クエリーパラメーター」を使います
URLの文末に「/?名前=値」という形で表します
これでサーバーに必要な値を送信することができます
今回のコードの解説はという形で文末にmsgという名前で’こんにちは’という値を送信してみましょう
クエリーパラメーターの使用方法
今回のコードでポイントとなるのはvar url_parts = url.parse(req.url,true);の部分です
前回のコードでもurl.parse()は利用しました
URLをパース処理(利用するために解析)するためのメソッドでしたね
前回は第1引数のみでした
ちなみに第1引数に入るのがパース処理するURLです
そして、今回ポイントになるのは第2引数です
第2引数にtrueを入れるとURLにクエリーパラメーターとして追加した部分もパース処理が行われます
オブジェクトから値を取り出す
パース処理の後どのように値が受け渡されてい利用されているか見てみましょう
query = url_parts.query;
すると変数のqueryにオブジェクト型の配列形式で値が格納されます
{ msg: ‘こんにちは’ } この場合msgがプロパティ名で値が「こんにちは」となっています
オブジェクト型の値を取り出しましょう
オブジェクト名.プロパティ名で値が取り出せます
query.msgで「こんにちは」という値がとりだせるということですね
ちなみにURLにクエリーパラメーターがない場合はundefinedになります
そこで、
if (query.msg !=undefined){メッセージが入っている場合の処理}else{undefinedの場合の処理}
と分岐をしています
これで今回のコードを実行すると
という形でパラメーターが利用されます
コメント