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