流星中的全局发布设置

时间:2015-11-04 18:58:50

标签: meteor

在meteor中,有没有办法在每次发布之前运行一些东西。像(伪)Metoer.onBeforePublish?

之类的东西

用例是为所有发布功能添加保护层,例如:

if (!this.userId) {
  return this.ready()
}

1 个答案:

答案 0 :(得分:1)

感谢MasterAM评论,这是我的实施:

pub = function(name) {
  var cb = Array.prototype.pop.call(arguments)
  var args = Array.prototype.slice(arguments, 1, -1)
    if(Meteor.isServer) {
      Meteor.publish(name, function(args){
        if (!this.userId) {
          return this.ready()
        }
      })
      cb(args)
    }
}

并称之为:

pub('taxes', query, options, function(){
  Taxes.find(query, options)
})

谢谢!