【问题标题】:Meteor Server-side variable persist between methodsMeteor 服务器端变量在方法之间保持不变
【发布时间】:2017-01-07 02:45:43
【问题描述】:

我正在构建一个简单的 Meteor-Angular 1 应用程序,但我无法让我的变量 'var conn' 在服务器中的方法之间持续存在。

流星代码:

import {Meteor} from 'meteor/meteor';

var name;

    Meteor.methods({
        'setName': function () {
           name = 'Harry';
        },

        'getName': function () {
            console.log(name);
            });
        }
    });

如果我在 Angular 中从同一个模板调用 setName 和 getName ,那么名称仍然存在。如果我在一个模板中设置名称但在另一个模板中调用 getName,则名称为“未定义”。我有 Java 背景,不知道如何让流星类在 Angular 模板之间作为同一个对象存在。非常感谢您提前提供的帮助。

【问题讨论】:

    标签: angularjs meteor


    【解决方案1】:

    您有 3 个选项:

    1. 将其存储在 MongoDB 的集合中。
    2. 使用在/server/xxx.js 文件中定义的全局变量。
    3. 其他服务器端持久性工具。也许https://github.com/lmaccherone/node-localstorage

    对于 alt 2,您可以创建一个字典对象,并使用来自 Meteor.onConnection() [Docs]connection.id 将数据限定为客户端连接。

    【讨论】:

      【解决方案2】:

      我很惊讶它完全有效。如果该代码确实在服务器上运行,则会在每次调用时在新上下文中调用它。如果你想让你的数据持久化,你需要在数据库中持久化。

      【讨论】:

        猜你喜欢
        • 2016-04-01
        • 1970-01-01
        • 2014-03-24
        • 1970-01-01
        • 2018-12-11
        • 1970-01-01
        • 2016-04-05
        • 2021-03-05
        • 1970-01-01
        相关资源
        最近更新 更多