Cookies 采用膝关节炎治疗仪;t在cookie中设置uid安全令牌 我使用节点版本5.0.0,UID安全版本2.0.0,膝关节炎版本1.1.2

Cookies 采用膝关节炎治疗仪;t在cookie中设置uid安全令牌 我使用节点版本5.0.0,UID安全版本2.0.0,膝关节炎版本1.1.2,cookies,koa,Cookies,Koa,我的问题是,我试图生成一个uid安全的令牌,并将其保存为cookie,然后检索cookie并在控制台中显示它 程序生成令牌ok,但当我尝试使用 this.cookies.set(cookieName, token); 它似乎只是挂起,没有显示错误消息。 之后的一行应该显示“通过设置,cookie永远不会显示” this.cookies.set()引发异常,但由于承诺链中没有.catch()子句,该异常将丢失(uid(18)。然后(…).catch(…)) 例外情况是: TypeError: C

我的问题是,我试图生成一个uid安全的令牌,并将其保存为cookie,然后检索cookie并在控制台中显示它

程序生成令牌ok,但当我尝试使用

this.cookies.set(cookieName, token);
它似乎只是挂起,没有显示错误消息。 之后的一行应该显示“通过设置,cookie永远不会显示”

this.cookies.set()
引发异常,但由于承诺链中没有
.catch()
子句,该异常将丢失(
uid(18)。然后(…).catch(…)

例外情况是:

TypeError: Cannot read property 'set' of undefined

这是因为<代码> 不是正确的上下文(对于所有的意图和目的,如果您不将传递回的回叫函数绑定到<代码>。()),则应该认为它是未定义的。 由于您使用的是生成器函数,因此可以使用

yield

app.use(function *(next) {
  var cookieName = 'koa.sid';
  var token      = yield uid(18);

  console.log("token: " + token);
  this.cookies.set(cookieName, token);
  console.log("Got past setting the cookie");
  ...
  yield next;
});
另外,
this.cookies.get()
也不起作用,因为(AFAIK)它只会获取通过请求传入的cookie值(而您正在将cookie设置为响应的一部分)。

this.cookies.set()
引发异常,但由于您的承诺链中没有
.catch()
子句,该异常丢失(
uid(18)。然后(…).catch(…)

例外情况是:

TypeError: Cannot read property 'set' of undefined

这是因为<代码> 不是正确的上下文(对于所有的意图和目的,如果您不将传递回的回叫函数绑定到<代码>。()),则应该认为它是未定义的。 由于您使用的是生成器函数,因此可以使用

yield

app.use(function *(next) {
  var cookieName = 'koa.sid';
  var token      = yield uid(18);

  console.log("token: " + token);
  this.cookies.set(cookieName, token);
  console.log("Got past setting the cookie");
  ...
  yield next;
});
另外,
this.cookies.get()
将不起作用,因为(AFAIK)它将只获取通过请求传入的cookie值(而您将cookie设置为响应的一部分)