Node.js + Express + express-session でセッション変数を使ってみる
Express + express-session でセッション変数を試す
事前準備として、フォルダ作ったりパッケージインストールしたりする
mkdir exps_test
cd exps_test
npm install --save express \
express-session \
body-parser \
ejs
http で確認したいので、 index.ejs を作っておく
mkdir exps_test
cd exps_test
npm install --save express \
express-session \
body-parser \
ejs
index.ejs は view として作るので、views フォルダを作っておく
views フォルダ内に index.ejs を作る
mkdir views
cd views
nano index.ejs
index.ejs の内容はコレ
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<p><%=message %></p>
<form action="/" method="post">
<input type="text" name="message">
<button type="submit" name="button">send</button>
</form>
<a href="/">LastUpdateData</a>
</body>
</html>
exps_test フォルダに戻って、nodeで起動するための index.js を作る
cd ../
nano index.js
index.js の内容はコレ
const express = require('express');
const ejs = require('ejs');
const bodyParser = require("body-parser");
const session = require("express-session");
const app = express();
app.set('ejs', ejs.renderFile);
app.use(bodyParser.urlencoded({ extended: false }));
app.use(session({
secret: "secret",
resave: false,
saveUninitialized: true,
}));
app.get('/', (req, res) => {
let message = 'no message';
if (req.session.message != undefined) {
message = "LastUpdateData:" + req.session.message;
}
res.render('index.ejs', {
message: message
});
});
app.post("/", (req, res) => {
let message = req.body.message;
req.session.message = message;
res.render('index.ejs', {
message: message
});
});
app.listen(3000, () => {
console.log('Example app listening on port 3000!');
});
node.js で index.js を起動する
$ node index.js
Example app listening on port 3000!
ブラウザでアクセスする
何かしらメッセージを入力してSendすると、no message の所が変わります。
LastUpdateData をクリックすると、最後に入力した内容が表示されます。
ブラウザを閉じるとデータが消えるので no message に戻るはず。
node を再起動してもデータが消えるので no message に戻ります。
session 設定しているとこに cookie の設定を足すと、データの有効期限が付けられたりします。
↓こんな感じにすると5秒後に LastUpdateData をクリックした場合、 no message に戻ってます。
app.use(session({
secret: "secret",
resave: false,
saveUninitialized: true,
cookie: { maxAge: 5 * 1000 }
}));
参考
- express-sessionでセッションを利用する[Express][node.js]
Author And Source
この問題について(Node.js + Express + express-session でセッション変数を使ってみる), 我々は、より多くの情報をここで見つけました https://qiita.com/bonkoturyu/items/892552fbb9c4388c06f9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .