Meteor执行涉及客户端时间的查询

时间:2013-01-12 07:41:23

标签: meteor

如果我正在做

Collection.insert({"name":"Record 1",creationTime:new Date()});
从客户端

,因为命令将被发送到服务器,有没有办法使用服务器的时间而不是客户端的数据插入时间?

使用new Date();可能不一致,因为客户的时间可能是任何东西。

我知道我们可以在插入查询之前获取服务器的时间,但考虑到插入命令将被发送回服务器,它似乎有点多余。

1 个答案:

答案 0 :(得分:1)

您可以简单地执行此操作以避免已发送到服务器的冗余:

if (Meteor.isClient) {
    Meteor.call("addItem", {"name": "Record 1"});
}

if (Meteor.isServer) {
    Meteor.methods({
        "addItem": function(obj) {
            obj.creationTime = new Date();
            Collection.insert(obj);
        }       
    });
}

或者来自客户:

if (Meteor.isClient) {
    Meteor.call("getDate", function (error, result) {
        Collection.insert({"name":"Record 1", creationTime: result});
    });
}


if (Meteor.isServer) {
    Meteor.methods({
        getDate: function () {
            return new Date();
        }
    });
}