Nodejs 使用 koa-router 无法添加 COOKIE
Nodejs 使用 koa-router 无法添加 COOKIE
使用了 koa-router 使用 chrome 和 nodejs 调试 发现 cookie 一直未被添加 代码如下:
router.get('/login', async function (ctx, next) {
ctx.state = {
title: 'koa2 admin hello'
};
ctx.cookies.set("nidaye1","nidadadaye");
await ctx.render('admin/login', {});
})
1 回复
在 Node.js 中使用 Koa 和 koa-router 时,添加 Cookie 通常是通过 Koa 的 ctx.cookies.set
方法来完成的,而不是直接在 koa-router 中设置。koa-router 主要用于定义路由和处理请求/响应逻辑,而设置 Cookie 是 Koa 框架的核心功能之一。
以下是一个简单的示例,展示了如何在 Koa 应用中使用 koa-router 并设置 Cookie:
const Koa = require('koa');
const Router = require('koa-router');
const app = new Koa();
const router = new Router();
router.get('/', (ctx, next) => {
// 设置 Cookie
ctx.cookies.set('myCookie', 'cookieValue', {
httpOnly: true, // 设置为 true 时,只能通过 HTTP 访问,JavaScript 无法访问
maxAge: 60000, // Cookie 有效期,单位为毫秒
});
ctx.body = 'Cookie 已设置';
});
app
.use(router.routes())
.use(router.allowedMethods());
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
在上面的代码中,我们创建了一个 Koa 应用和一个 koa-router 实例。在根路由(/
)的处理函数中,我们使用 ctx.cookies.set
方法来设置一个名为 myCookie
的 Cookie。我们还设置了 httpOnly
和 maxAge
选项来限制 Cookie 的访问方式和有效期。
运行这个示例后,访问 http://localhost:3000
,你应该能在浏览器的开发者工具中看到设置的 Cookie。