gpt4 book ai didi

Meteor 无法在页面之间保存 session 的值

转载 作者:行者123 更新时间:2023-12-04 17:52:38 24 4
gpt4 key购买 nike

我面临的问题是,如果将网页移动到其他网页,Meteor 将无法保存 session 的值。我是 Meteor 的新手,也许我滥用了。
如何处理页面之间的 session 值?即使页面移动到另一个页面或浏览器重新加载,我也想保留 session 的值。

我打算使用 Javascript 框架(例如 Meteor、Mojito 和 Express (Node.js))构建一个 Web 应用程序,并在开发之前对其进行测试。

我正在使用 Meteor 版本 0.5.2 (6635ae1007) 和
Chrome 版本 23.0.1271.95。

下面是测试代码和测试步骤:

(1) 点击“测试”按钮:

这会将“结果是”标签更改为“结果正常”。

(2) 单击“返回首页”链接或重新加载浏览器:

我想保留标签“结果正常”,但它又回到“结果是”。
这意味着 session 值未定义。

测试.js

if (Meteor.isClient) {
Template.test.result = function() {
var result = Session.get('TEST');
console.log('Result: %s', result);
return result;
}

Template.test.events({
'click' : function() {
Session.set('TEST', 'OK');
}
});
}

测试.html
<head>
<title>sample-session</title>
</head>

<body>
<h1>Session Test</h1>
<a href="./">Back to Top page<a/><br/>
{{> test}}
</body>

<template name="test">
<input type="button" value="TEST"></input><br/>
Result is {{result}}.
</template>

最佳答案

更新 Meteor 现在有一个 Session.setDefault方法完全符合您的期望。

以下原答案
session meteor 中的物体是 根本不同 来自 session其他框架(Rails/ASP.NET MVC/PHP)中的概念——它在 Meteor 中的主要功能是作为 reactive variable用于客户端代码。

不是 旨在执行您在上面期望的操作 - 一旦您的链接触发,客户端上下文就会被删除,并且任何客户端 session 值都将消失。 Meteor 应用程序不是为传统意义上的导航而设计的,所以这就是为什么这看起来如此困惑的原因。这是完全可以理解的:)

与传统意义上的导航不同,我建议你看看meteor-router ,这有助于缓解传统方法和更加 meteor 式方法之间的过渡。

如果您确实需要按照上面描述的方式保留数据,您需要查看 amplify smart package用于在本地保存客户端上的数据。

提示:当您在 the docs 中了解 Meteor 时,非常注意每个段右上角的客户端/服务器/任何地方的名称。

关于Meteor 无法在页面之间保存 session 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13747912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com