【发布时间】:2014-12-12 19:42:54
【问题描述】:
我正在用 NodeJS 实现一个 Web 应用程序,其中要求用户在访问每个页面之前都必须登录。
我使用 Passport 模块实现了用户身份验证。根据护照指南页面,我在护照配置中创建了 serializeUser 和 deserializeUser 用户功能,以便使用会话跟踪。
在deserializeUser函数中,我从cookie中获取存储的信息,传入函数的第一个参数,在数据库中的user表中搜索获取用户详细信息并传递给done 功能。
但是我看到在每个请求中都会调用反序列化函数并查询数据库以检索用户详细信息并将其传递给 done 函数。
我的问题是,这种不断地查询数据库(在性能和逻辑方面)以获取用户对象是否是正确的做法,或者我理解并实现了错误。可能做一些并不真正需要的事情?
【问题讨论】:
-
是的,这确实是正确的惯例。如果您不想查询数据库,您可以将用户存储在内存中。但我不会太担心。
-
@laggingreflex 谢谢你的回答。我也考虑过用户的内存节省。但我怀疑这是否是正确的做法。再次感谢
标签: node.js session serialization passport.js