ども、小堤です。
日進月歩といきたいところですが、なかなか難しいですね。
はい、では、前回の続き。
アクションでできること
アクションでは、次のことができます。
- get値の取得
- post値の取得
- Cookie制御
- セッション制御
まーあたりまえのことじゃないかーとかPHPとかみたく$_SESSIONとかでいきなりセッション扱えるほど
Nodeは甘くないんですねー、自作するんですよー。ミドルウェア持ってくるか。
まぁ、ここら辺をNext JSはアクション内で最初から利用できます。
get値の取得
get値を取得します。
とりあえず、簡単にクエリーストリングとして値を設定してみて、それをアクションで取得してみましょう。
1 |
http://localhost:3000/?foo=bar |
fooにbarが入ってくるっていうものですね。
さて、アクションには次のように記述します。
1 2 3 4 5 6 7 8 |
module.exports = { execute: <span style="color:#000099;">function</span>() { <span style="color:#000099;">this</span>.<span style="color:#000099;">set</span>(<span style="color:#009900;">'ret'</span>, <span style="color:#000099;">this</span>.<span style="color:#000099;">get</span>.foo); <span style="color:#000099;">this</span>.end(); } }; |
this.getにgetで取得した値がket/valueで格納されていますので、ここを参照して値を取得します。
post値の取得
POST値を取得します。
formタグで、postした場合、this.postでthis.get同様取得できます。
またPHPにならってですが、this.requestでpost/get両方が合成されたオブジェクトに参照することができます。
Cookie制御
cookieもpost/getと同じ感じですね。
this.cookieでアクセスします。取得するときは。
設定するときは、setCookieを利用します。
1 2 3 |
<span style="color:#000099;">this</span>.setCookie(<span style="color:#009900;">'param1'</span>, <span style="color:#009900;">'kotsutsumi'</span>, { expires: <span style="color:#009900;">'2020/05/16'</span> }); |
http://php.net/manual/ja/function.setcookie.php
と第三引数のオブジェクトリテラルに設定するものは一緒なのですが
expire、path、domain、secure、httponly
がキーで利用できます。
name、valueは、第一、第二引数で設定してますので。
セッション制御
this.sessionでアクセスできます。
セッションは、this.sessionに新たにキーを作って値をいれるだけで自動的に保存されます。
1 |
this.session.mykey = 1; |
みたいな感じですね。
セッションは、メモリセッション、ファイルセッションに現在対応していて、初期状態ではファイルセッションになっています。
メモリセッションは、connectなどで実装されていますが、これは、サーバープロセスが1つの場合はよいのですが
Workerで動かす場合は、ファイルセッションである必要があります。
今後、memcacheのセッションにも対応したいと考えています。
アクションの基本機能を確認したところで、次回は、グローバルアクション、エクステントアクションを動かしてみましょう。
では、また。
Pingback: NextJSの勉強再開するぞ | Sunvisor Lab. Ext JS 別館