Nodejs 使用 koa-router 无法添加 COOKIE

发布于 1周前 作者 itying888 来自 nodejs/Nestjs

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。我们还设置了 httpOnlymaxAge 选项来限制 Cookie 的访问方式和有效期。

运行这个示例后,访问 http://localhost:3000,你应该能在浏览器的开发者工具中看到设置的 Cookie。

回到顶部