4

将新文档插入集合时,我想为其添加时间戳。我希望服务器执行此操作,而不是客户端。这里最好的解决方案是什么?

Rem:我宁愿不Meteor.methods()为此实现我自己的自定义,而是使用经典Meteor.Collection.insert()方法

4

3 回答 3

7

从这里 - https://github.com/oortcloud/unofficial-meteor-faq

块引用

如何在将每个文档添加到数据库之前对其进行更改?

目前不支持此功能,但您可以使用拒绝在服务器上实现您想要的。例如,在每个文档进入 mongo 时为其添加时间戳:

Posts.deny({
  insert: function(userId, doc) {   
   doc.createdAt = new Date().valueOf();   
   return false; 
}}) 

```

于 2013-05-04T22:59:30.657 回答
1

像 Nate 一样,添加我使用的时间戳:

new Date().valueOf()

并将其附加到点击事件,如下所示:

"click #messageSubmit": function (evt, templ) {

  var message = templ.find('#messageText').value;

  Messages.insert({
    message: message,
    createdAt: new Date().valueOf()
  });
}
于 2014-06-11T18:03:28.400 回答
0

我会用Date.now(). 它看起来更干净,并返回与new Date().getTime().

new Date().getTime() === Date.now() // true
于 2015-10-19T21:54:37.417 回答