web-dev-qa-db-ja.com

expressjsでcookie値を取得する方法

私はCookieパーサーを使用しています。チュートリアルではすべて、Cookieの設定方法と有効期限について説明していますが、これらのCookieの値を取得する方法については教えていません。

9

最初に、Cookieはサーバーリクエストおよびクライアント側に保存でクライアントに送信されることに注意してください。ユーザーがWebサイトをロードするたびに、このCookieがリクエストとともに送信されます。

したがって、クライアント側でCookieにアクセスできます(たとえば、クライアント側でJavaスクリプト)を使用して

document.cookie

ブラウザのコンソール(F12)を開き、次のように入力して、クライアント側でこれをテストできます。

console.log(document.cookie);

を使用して、サーバー(あなたの場合、expressjs)側からcookieにアクセスできます。

req.cookies

ベストプラクティスは、クライアント側で正しく保存されているかどうかを確認することです。すべてのブラウザがユーザーの許可なしにCookieの保存を許可しているわけではないことに注意してください。

あなたのコメントによると、あなたのコードは次のようなものでなければなりません

var express = require('express');
var app = express();

var username ='username';

app.get('/', function(req, res){
   res.cookie('user', username, {maxAge: 10800}).send('cookie set');
});

app.listen(3000);
10
Shanil Fernando

これがあなたを助けることを願っています

var app=requir('express')();
app.use('/',(req,res) => {
  var cookie = getcookie(req);
  console.log(cookie);
});

function getcookie(req) {
  var cookie = req.headers.cookie;
  //user=someone; session=QyhYzXhkTZawIb5qSl3KKyPVN (this is my cookie i get)
  return cookie.split('; ');
}

出力

'user=someone',
'session=QyhYzXhkTZawIb5qSl3KKyPVN' ]
1
Jishan mondal

この質問に出くわした人々のために、これは私がやった方法です:

Expressでパッケージ化されなくなったため、Express Cookieパーサーミドルウェアをインストールする必要があります。

npm install --save cookie-parser

次に、次のように設定します。

const cookieParser = require("cookie-parser");

const app = express();
app.use(cookieParser());

次に、Cookieにアクセスできます

req.cookies

お役に立てば幸いです。

0
M Mansour