request如何继续使用上一次请求返回的cookie?
客户端
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
请先明白
cookie
是什么以及它的作用,再思考下为什么这里为undefined
。你这里的
set
是设置的是响应给客户端的cookie
设置,而get
是获取当前客户端请求的cookie
,因此只有在下一个请求才能获取到你当前设置的cookie
的值。你这里自己刚设置的,就去取?cookie一般都是在亲求信息的适合获取的,你在其它请求接口下应该是能正常获取的