扫码一下
查看教程更方便
Cookies 是简单的小文件/数据,通过服务器请求发送到客户端并存储在客户端。 每次用户重新加载网站时,此 cookie 都会随请求一起发送。 这有助于跟踪用户的操作。 HTTP Cookie 有多种用途。
要在 Koa 中使用 cookie,我们有以下函数:ctx.cookies.set()
和 ctx.cookies.get()
。 要设置一个新的 cookie,让我们在 Koa 应用程序中定义一个新的路由。
var koa = require('koa');
var router = require('koa-router');
var app = new koa();
var _ = router(); // 实例化路由器
_.get('/', setACookie);
function setACookie(ctx,next) {
ctx.body = "设置 Cookie!";
ctx.cookies.set('foo', 'bar', {httpOnly: false});
}
app.use(_.routes()); // 使用由 router 定义的路由
app.listen(3000);
要检查 cookie 是否设置,只需转到浏览器,启动控制台,然后输入
console.log(document.cookie);
这将产生以下输出(由于浏览器中的扩展,我们可能设置了更多 cookie)。
"foo = bar"
浏览器还会在每次查询服务器时发回 cookie。 要查看服务器上的 cookie,需要在路由中的服务器控制台上,将以下代码添加到该路由。
console.log('Cookies: foo = ', this.cookies.get('foo'));
下次我们向此路由发送请求时,将获得以下输出。
Cookies: foo = bar
我们可以添加具有过期时间的 cookie。 要添加具有过期时间的 cookie,只需传递一个将属性“过期时间”设置为我们希望它过期的时间的对象。 例如,
var koa = require('koa');
var router = require('koa-router');
var app = new koa();
var _ = router(); // 实例化路由器
_.get('/', setACookie);
function setACookie(ctx,next) {
ctx.body = "设置 Cookie!";
ctx.cookies.set('foo', 'bar', {httpOnly: false,expires: 360000 + Date.now()});
}
app.use(_.routes()); // 使用由 router 定义的路由
app.listen(3000);
要取消设置 cookie,只需将 cookie 设置为空字符串。 例如,如果需要清除名为 foo 的 cookie,请使用以下代码。
function setACookie(ctx,next) {
ctx.cookies.set('foo', '')
}
这将取消设置所述 cookie。 请注意,在客户端代码中不使用 cookie 时,我们应该设置 httpOnly
选项为 true。