如何设置追踪推荐人代码?写在前端middleware或者nuxtServerInit都报错

来源:4-13 在 Vue SSR 中实现微信网页授权机制与用户资料读取

慕用9964470

2017-10-29

有个需求是创建一个邀请链接,

然后需要被邀请的时候即使没登录也要记录这个邀请人,

然后注册的时候也记录邀请人,


我的思路是保存在session,虽然能保存成功,但是有个cookie的报错,代码和错误信息如下,

好像是nuxt已经render了,render后修改cookie就会有错误,

额,然后请问老师应该怎么写类似nuxt渲染,但是需要服务器配合的逻辑?

  nuxtServerInit ({ commit }, { req , query }) {
      if(query.inviter){
        if (!trance) {
          trance={}
        console.log('req.session.trance.inviter',req.session.trance)
        }
        if(trance.inviter!=query.inviter){
          trance.inviter=query.inviter
        }
        console.log('req.session.trance.inviter',req.session.trance)
      }
}


错误信息

  Error: Can't set headers after they are sent.
      at validateHeader (_http_outgoing.js:504:11)
      at ServerResponse.setHeader (_http_outgoing.js:511:3)
      at Cookies.set (/www/wwwroot/miaodetao/source/node_modules/cookies/index.js:115:13)
      at /www/wwwroot/miaodetao/source/node_modules/koa-session2/index.js:39:21
      at <anonymous>
      at process._tickCallback (internal/process/next_tick.js:169:7)


写回答

1回答

Scott

2017-10-31

这个错误信息,感觉不是 cookie 导致的,是服务器端渲染的时候,导致的。


可能得再看看你服务器端这块处理的代码,另外,记录邀请人的话,服务器端在用户点击连接进来时候,也可以存一个 inviteToken 的表,记录起来,然后写到 session cookie 中后,用户在前端页面,读取这个 cookie 后,注册或者登陆后,再传给后台,后台对应 inviteToken 表查有无,再记录一次到用户邀请人这里,应该也可以。就不需要修改 cookie 了

0
0

开发微信全家桶项目Vue/Node/MongoDB高级技术栈全覆盖

Nuxt/Vue SSR + Koa2 跨栈开发微信公众号+小程序

989 学习 · 401 问题

查看课程