Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我是否必须对仅服务器端逻辑使用方法?_Javascript_Meteor - Fatal编程技术网

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

Javascript 我是否必须对仅服务器端逻辑使用方法?,javascript,meteor,Javascript,Meteor,我想知道如果我只做服务器端操作,是否必须使用Meteor.methods,如果不是,逻辑放在哪里 我发现自己经常这样做: Meteor.methods({ someMethod: function () { if (! this.isSimulation) { // make third party api call, use node module, etc. } } }); 在客户端,我不能调用第三方API来补偿延迟,也不能使用节点模块使用Npm.req

我想知道如果我只做服务器端操作,是否必须使用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)
周围


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

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

server/lib/logic.js

serverLogic = function(){
  // your server-side only logic 
};
serverLogic();
然后,您可以在服务器环境中的任何位置,在方法、收集挂钩等内部调用您的函数

server/anywhere.js

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