我是否必须使用仅用于服务器端的逻辑方法?

时间:2015-09-06 23:30:07

标签: javascript meteor

我想知道如果我只进行服务器端操作,是否必须使用Meteor.methods,如果没有,那么在哪里放置逻辑。

我发现自己做了很多这样的事情:

Meteor.methods({
  someMethod: function () {
    if (! this.isSimulation) {
      // make third party api call, use node module, etc.
    }
  }
});

在客户端,我无法对延迟补偿进行第三方API调用,或者使用Npm.require使用节点模块(假设未使用meteorhacks:npm)。所以我总是围绕if(! this.isSimulation)包装这些方法。

但如果我不能使用延迟补偿,似乎没有必要将此逻辑放在方法中。广泛采用的做法是什么?我是否仍然将这些逻辑放在方法中?

1 个答案:

答案 0 :(得分:0)

您可以将纯服务器端逻辑声明为位于server目录下的服务器全局函数。

server/lib/logic.js

serverLogic = function(){
  // your server-side only logic 
};

然后你可以简单地在服务器环境中的任何地方,方法,集合钩子等中调用你的函数......

server/anywhere.js

serverLogic();