ctx.cookies.set() 与 Deno 标准中的 setCookies
ctx.cookies.set() vs setCookies in Deno std
我目前正在使用 Deno(Oak 框架),想知道使用 Oak 的 ctx.cookies
(https://github.com/oakserver/oak/blob/main/cookies.ts) vs something from Deno's std lib (setCookies
, getCookie
, and deleteCookie
from https://deno.land/std@0.120.0/http/cookie.ts)有什么区别。
尽管 Oak 框架提供了使用 cookie 的方法,但两者之间 pros/cons 需要考虑什么?即使在使用框架时,是否有理由使用 std lib 而不是 oak 的方法?
简而言之:如果您正在使用 Oak,请使用 Oak 提供的方法,除非您有特殊原因不这样做。 (如果你遇到过这样的场景,那就很明显了。)
setCookie
function from deno.land/std/http
simply appends a new Set-Cookie
header to an existing Headers
对象。您可以将它与 Oak 一起使用:
const cookie = {name: 'cookie_name' value: 'cookie_value'};
setCookie(ctx.response.headers, cookie);
来自deno.land/x/oak
的set
method on ctx.cookies
(which is an instance of the Cookies
class) 允许您直接操作当前请求-响应中的cookies context
:
await ctx.cookies.set('cookie_name', 'cookie_value');
使用它时,您不需要手动传递对现有 Headers
对象的引用(因为它已经是上下文响应对象的一部分)。这种更高级别的抽象意味着您不必管理(甚至不必考虑)那么多离散的部分。 Oak 在处理 cookie 时提供额外的抽象,例如 cryptographic signatures。文档涵盖了详细信息。
我目前正在使用 Deno(Oak 框架),想知道使用 Oak 的 ctx.cookies
(https://github.com/oakserver/oak/blob/main/cookies.ts) vs something from Deno's std lib (setCookies
, getCookie
, and deleteCookie
from https://deno.land/std@0.120.0/http/cookie.ts)有什么区别。
尽管 Oak 框架提供了使用 cookie 的方法,但两者之间 pros/cons 需要考虑什么?即使在使用框架时,是否有理由使用 std lib 而不是 oak 的方法?
简而言之:如果您正在使用 Oak,请使用 Oak 提供的方法,除非您有特殊原因不这样做。 (如果你遇到过这样的场景,那就很明显了。)
setCookie
function from deno.land/std/http
simply appends a new Set-Cookie
header to an existing Headers
对象。您可以将它与 Oak 一起使用:
const cookie = {name: 'cookie_name' value: 'cookie_value'};
setCookie(ctx.response.headers, cookie);
来自deno.land/x/oak
的set
method on ctx.cookies
(which is an instance of the Cookies
class) 允许您直接操作当前请求-响应中的cookies context
:
await ctx.cookies.set('cookie_name', 'cookie_value');
使用它时,您不需要手动传递对现有 Headers
对象的引用(因为它已经是上下文响应对象的一部分)。这种更高级别的抽象意味着您不必管理(甚至不必考虑)那么多离散的部分。 Oak 在处理 cookie 时提供额外的抽象,例如 cryptographic signatures。文档涵盖了详细信息。