【问题标题】:How to avoid service multiple time run in hook using feathers.js?如何避免使用feathers.js在钩子中多次运行服务?
【发布时间】:2018-01-03 15:31:47
【问题描述】:

我在羽毛钩的羽毛服务中遇到问题。确切的问题是我在羽毛钩子中使用羽毛服务,当我在钩子中调用服务时,它会运行多次,这样就会发生内存问题。我的问题是如何避免服务在挂钩中多次运行。

function orders(hook){
  return new Promise((resolve,reject) =>{
      hook.app.service('orders')
        .find(hook.app.query)
        .then(result => {
          resolve(result.data)
        }).catch(e =>{
        reject(e)
      })
  })
}

我预期的解决方案是服务应该在挂钩上单次运行。

【问题讨论】:

    标签: javascript node.js feathersjs feathers-hook feathers-service


    【解决方案1】:

    理想情况下,服务方法不应在挂钩中调用自己,但如果这样做,您将需要一个中断条件,以便它不会在无限循环中继续调用自己。这可以通过例如传递一个参数,如果未设置,将跳过自引用调用:

    app.service('myservice').hooks({
      before: {
        find(hook) {
          if(!hook.params.fromOtherHook) {
    
            const newParams = Object.assign({
              fromOtherHook: true
            }, hook.params);
    
            return hook.service.find(newParams);
          }
        }
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-13
      相关资源
      最近更新 更多