😃
fastify-cookieでreq.cookieがnullになる
結論
fastify-cookieの登録がonRequest
の後だった場合、fastifyのonRequest
Hook内だとreq.cookies
がnull
になります。
app.addHook('onRequest', async (req, reply) => {
console.log(req.cookies) // null
}
app.register(fastifyCookie) // fastify-cookieの登録
app.get('/hoge/', (req, reply) => {
console.log(req.cookies) // { ~~ }
})
req.cookies
のinterfaceは以下のものであり、本来null
になるはずがなかったため結構ハマりました。
interface FastifyRequest extends SignerMethods {
/**
* Request cookies
*/
cookies: { [cookieName: string]: string | undefined };
}
少しだけ中身を眺める
ここで最初にnullに初期化してるっぽい。
そのあと、onRequest後にには以下の部分でcookieをparseしてくれるっぽいのだが、onRequest
hookの後に走るので、onRequest
では cookieがnullになるといった感じ。
おわり
半日溶けたので、app.register
はなる早で実行しておいた方がいいのかも。
Discussion