1

如果我正在做一个

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

从客户端,因为无论如何命令都会发送到服务器,有没有办法在数据插入时使用服务器的时间而不是客户端的时间?

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

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

4

1 回答 1

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();
        }
    });
}
于 2013-01-12T08:51:03.860 回答