読者です 読者をやめる 読者になる 読者になる

by shigemk2

当面は技術的なことしか書かない

クッキーの利用

node.js

f:id:shigemk2:20140604000303p:plain

f:id:shigemk2:20140604000313p:plain

index.ejs

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title><%=title %></title>
    <link type="text/css" href="./style.css" rel="stylesheet">
  </head>
  <body>
  <h1><%=title %></h1>
  <p><%=msg %></p>
  </body>
</html>

hello.js

var http = require('http');
var fs   = require('fs');
var url  = require('url');
var ejs  = require('ejs');

var index = fs.readFileSync('./index.ejs', 'utf8');
var style = fs.readFileSync('./style.css', 'utf8');

var server = http.createServer();
server.on('request', doRequest);
server.listen(1337);

function doRequest(req, res) {
    var path = url.parse(req.url);

    switch(path.pathname) {
    case '/':
        var ck = req.headers.cookie;
        var tmp = ejs.render(index, {
            title: "Index Page",
            msg:"クッキー: " + ck
        });
        res.setHeader('Content-Type','text/html');
        res.write(tmp);
        res.end();
        break;
    case '/style.css': // スタイルシート用
        res.setHeader('Content-Type','text/css');
        res.write(style);
        res.end();
        break;
    default:
        res.setHeader('Content-Type', 'text/plain');
        res.setHeader('Set-Cookie', ['lasturl=' + path.pathname]);
        res.write('SET COOKIE!');
        res.end();
        break;
    }
}

console.log('Server running at http://127.0.0.1:1337/');

だいたいこんな感じ。

クッキーは、Webブラウザ内で保管しておくことのできる小さなデータである。 これにより、ちょっとした情報を各クライアントに保管しておくことができる。

現場で通用する力を身につける Node.jsの教科書