Meteor 中的 Session 是用词不当吗?
Is Session in Meteor a misnomer?
虽然我最近才开始广泛使用 Meteor,但 Meteor 中 Session
对象的名称 "Session" 对我来说感觉用词不当。它与它在网络上的常规使用方式有很大不同,我不明白为什么这样命名。是否有特定原因,或者是否可以将其重命名为更合适的名称?
一个 Session
变量是一个响应式数据源,它:
- 可以在您的客户端代码中的任何位置进行全局访问
- 将在热代码推送中幸存下来
- 将无法在硬重装后存活下来
我同意这个名字因为最后一点而令人困惑。要回答您的问题,是的,如果您确实愿意,可以可以 将其命名为其他名称。例如:
client/lib/session.js
NotReallySession = Session;
然后在您的客户端代码的其他地方,您可以这样做:
NotReallySession.set('answer', 42);
NotReallySession.get('answer');
但是,我不确定您这样做的真正收获是什么。
一个更有吸引力的解决方案是使用像 persistent-session 这样的包,它修改 Session
api 以通过将值保存在本地存储中来为您提供跨页面刷新的持久性。
特别感兴趣的可能是 Session.setAuth
函数,它存储一个持久的反应值,该值在注销时被清除。在我看来,这与其他上下文中的“会话”概念最接近。
虽然我最近才开始广泛使用 Meteor,但 Meteor 中 Session
对象的名称 "Session" 对我来说感觉用词不当。它与它在网络上的常规使用方式有很大不同,我不明白为什么这样命名。是否有特定原因,或者是否可以将其重命名为更合适的名称?
一个 Session
变量是一个响应式数据源,它:
- 可以在您的客户端代码中的任何位置进行全局访问
- 将在热代码推送中幸存下来
- 将无法在硬重装后存活下来
我同意这个名字因为最后一点而令人困惑。要回答您的问题,是的,如果您确实愿意,可以可以 将其命名为其他名称。例如:
client/lib/session.js
NotReallySession = Session;
然后在您的客户端代码的其他地方,您可以这样做:
NotReallySession.set('answer', 42);
NotReallySession.get('answer');
但是,我不确定您这样做的真正收获是什么。
一个更有吸引力的解决方案是使用像 persistent-session 这样的包,它修改 Session
api 以通过将值保存在本地存储中来为您提供跨页面刷新的持久性。
特别感兴趣的可能是 Session.setAuth
函数,它存储一个持久的反应值,该值在注销时被清除。在我看来,这与其他上下文中的“会话”概念最接近。