ExpressでCookieを利用する方法

ExpressでCookieを扱う方法について取り上げます。「レスポンスにCookieを含める方法」と「リクエストヘッダに設定されたCookieを読み取る方法」について動作確認します。

レスポンスにCookieを含める

res.cookie

res.cookie でレスポンスにCookieを設定することができます。

app.js というファイルに以下処理を記述して動作確認します。

const express = require('express')
const app = express()

app.get('/', (req, res) => {
  res.cookie('name1', 'value1', {
    maxAge: 60000,
    httpOnly: false
  })

  res.cookie('name2', 'value2', {
    httpOnly: true
  })

  res.cookie('name3', 'value3', {
    domain: '.wakuwakubank.com',
    path: '/cookie',
    secure: true
  })

  res.json({})
})

app.listen(5000, () => console.log('Example app listening on port 5000!'))

Expressを起動させます。

$ node app.js 
Example app listening on port 5000!

curlで動作確認します。

$ curl --dump-header -  http://localhost:5000
HTTP/1.1 200 OK
X-Powered-By: Express
Set-Cookie: name1=value1; Max-Age=60; Path=/; Expires=Fri, 21 Dec 2018 00:16:05 GMT
Set-Cookie: name2=value2; Path=/; HttpOnly
Set-Cookie: name3=value3; Domain=.wakuwakubank.com; Path=/cookie; Secure
Content-Type: application/json; charset=utf-8
Content-Length: 2
ETag: W/"2-vyGp6PvFo4RvsFtPoIWeCReyIC8"
Date: Fri, 21 Dec 2018 00:15:05 GMT
Connection: keep-alive

{} 

3つのCookieが設定されていることを確認できました。

res.cookie の各オプションの役割は以下ページで確認できます。

リクエストに含まれるCookieを読み取る

リクエストに含まれるCookieを読み取るために cookie-parser をExpressのMiddlewareに設定します。

cookie-parser をインストールします。

npm install --save cookie-parser

req.cookies

cookie-parser をExpressのMiddlewareに設定後、req.cookies でリクエストヘッダに設定されたCookieを読み取れます。

app.js というファイルに以下処理を記述して動作確認します。

const express = require('express')

const cookieParser = require('cookie-parser')
const app = express()

app.use(cookieParser())
app.get('/', (req, res) => {
  res.json(req.cookies)
})

app.listen(5000, () => console.log('Example app listening on port 5000!'))

Expressを起動させます。

$ node app.js 
Example app listening on port 5000!

curlで動作確認します。 -bオプション でリクエストヘッダにCookieを設定できます。

$ curl -b 'name1=value1; name2=value2' -v http://localhost:5000
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 5000 (#0)
> GET / HTTP/1.1
> Host: localhost:5000
> User-Agent: curl/7.64.1
> Accept: */*
> Cookie: name1=value1; name2=value2
> 
< HTTP/1.1 200 OK
< X-Powered-By: Express
< Content-Type: application/json; charset=utf-8
< Content-Length: 35
< ETag: W/"23-lk0r592Lvgc2PznsTiA/LFYjXPU"
< Date: Fri, 21 Dec 2018 00:31:27 GMT
< Connection: keep-alive
< 
* Connection #0 to host localhost left intact
{"name1":"value1","name2":"value2"}* Closing connection 0

参考

【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。

logo
わくわくBank.
技術系の記事を中心に、役に立つと思ったこと、整理したい情報などを掲載しています。