Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 在使用护照和快递的会话中,序列化和去序列化究竟做了什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我只有最简单的关于会话的概念,以及 the official documentation does not help much,因为它假设我知道会话是什么,因此也知道为什么用户需要序列化和反序列化.

这就是我认为我所知道的:一个会话就像贴在服务器冰箱上的便利贴,上面写着“用户鲍勃很酷.让他进来吧.”每次来自bob的新请求时,服务器都会检查post-it节点并说:“是的.bob仍然很酷.”

因此序列化正在编写便利贴,反序列化正在将其删除.这就是我不明白的地方:这段代码如何编写一个post-it节点,“做”了什么?

passport.serializeUser(function(user,donE) {
  done(null,user.id);
});

以下代码如何丢弃便利贴? findByID访问我存储用户的数组.如果“后贴注”刚刚被丢弃,为什么需要访问它?

passport.deserializeUser(function(id,donE) {
  findById(id,function (err,user) {
    done(err,user);
  });
});

究竟是什么流程呢?

这些示例的其余代码here

解决方法

你的冰箱比喻就在那里.会话确实像一个便利贴,但你写下你想要的东西.序列化是写作部分,反序列化是阅读部分.

所以您的用户登录.您不希望将所有信息保留在会话中,因为它已经在您的数据库中.但是在随后的请求中,你想要记住他是谁.所以你必须写下你的帖子 – 这是他的身份证,比方说1234.通过调用已完成,你告知护照这是你想要在会话中存储的内容.

在随后的电话中,护照会检索你的帖子并说“好吧,我知道这个人,他的身份证是1234”. findById是您调用以检索其所有信息的方法,例如他的名字.通过在这里调用完成,你说“好吧,这是关于该用户的信息.他的名字是鲍勃.”

如果您想知道为什么要调用完成而不是简单地返回值,那是因为序列化和反序列化都可能是异步的.如果您想了解有关异步代码的更多信息,我强烈建议您阅读Node the right way,因为它是Node.js的核心概念.

希望这可以帮助.

大佬总结

以上是大佬教程为你收集整理的node.js – 在使用护照和快递的会话中,序列化和去序列化究竟做了什么?全部内容,希望文章能够帮你解决node.js – 在使用护照和快递的会话中,序列化和去序列化究竟做了什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。