如果我正在做一个
Collection.insert({"name":"Record 1",creationTime:new Date()});
从客户端,因为无论如何命令都会发送到服务器,有没有办法在数据插入时使用服务器的时间而不是客户端的时间?
使用new Date();
可能不一致,因为客户的时间可以是任何东西。
我知道我们可以在插入查询之前获取服务器的时间,但考虑到插入命令将被发送回服务器,这似乎有点多余。
如果我正在做一个
Collection.insert({"name":"Record 1",creationTime:new Date()});
从客户端,因为无论如何命令都会发送到服务器,有没有办法在数据插入时使用服务器的时间而不是客户端的时间?
使用new Date();
可能不一致,因为客户的时间可以是任何东西。
我知道我们可以在插入查询之前获取服务器的时间,但考虑到插入命令将被发送回服务器,这似乎有点多余。
您可以简单地这样做来避免已经发送到服务器的冗余:
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();
}
});
}