流星更新时间戳

时间:2013-05-22 20:05:19

标签: meteor

我使用UMFAQ(发音为 um-fack )成功实现了“创建”时间戳,但我无法使“更新”时间戳工作( UMFAQ暗示但未提供代码示例。

这是我的代码:

Posts.deny({
    insert: function (userId, doc) {
        doc.created = new Date(); // timestamp
        return false;
    },
    update: function (userId, doc, fieldNames, modifier) {
        doc.updated = new Date(); // timestamp
        return false;
    }
})

当我通过Chrome控制台将对象插入集合时,我会得到一个“已创建”的时间戳。但是,当我更新该记录时(使用$ set),我没有得到“更新”字段。

1 个答案:

答案 0 :(得分:4)

您需要更改modifier以获取更新:

Posts.deny({
    ....
    update: function (userId, doc, fieldNames, modifier) {
        if(modifier.$set) {
            modifier.$set.updated = new Date();
        } 
        return false;
    }
});

检查$set是否存在,以防止客户端在不使用$set的情况下发送更新时出现错误。