request如何继续使用上一次请求返回的cookie?

发布于 2022-09-11 20:38:27 字数 1276 浏览 15 评论 0

客户端
import request from 'request-promise'


request('http://localhost:8090/').then(res => {
    console.log(res)
})

request('http://localhost:8090/').then(res => {
    console.log(res)
})

request('http://localhost:8090/').then(res => {
    console.log(res)
})
服务端
const Koa = require('koa')
const route = require('koa-route')
const bodyParser = require('koa-bodyparser')

const app = new Koa()

app.use(bodyParser({
    enableTypes: ['json', 'form', 'text']
}))

const main = ctx => {
    ctx.cookies.set('mycookie', 'hello-value');
    console.log(ctx.cookies.get('mycookie'))
    // 奇怪,这里为什么输出 undefined 呢?
    
    ctx.response.type = 'html'
    ctx.response.body = '<a href="/">main Page</a>'
}

app.use(route.get('/', main))
app.listen(8090, '0.0.0.0', () => {
    console.log('Example app listening on http://localhost:8090/')
})
问题

这里明明设置了cookie,但是输出 undefined ? 用浏览器就能正常的输出 hello-value

   ctx.cookies.set('mycookie', 'hello-value');
   console.log(ctx.cookies.get('mycookie'))
   console.log(ctx.cookies.get('mycookie')

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

自此以后,行同陌路 2022-09-18 20:38:27

请先明白 cookie 是什么以及它的作用,再思考下为什么这里为 undefined

你这里的 set 是设置的是响应给客户端的 cookie 设置,而 get 是获取当前客户端请求的 cookie,因此只有在下一个请求才能获取到你当前设置的 cookie 的值。

鹿港巷口少年归 2022-09-18 20:38:27

你这里自己刚设置的,就去取?cookie一般都是在亲求信息的适合获取的,你在其它请求接口下应该是能正常获取的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文