Meteor:定义可用于方法的服务器功能

时间:2014-10-09 11:13:12

标签: javascript methods meteor

我要做的是以下内容:

function doSomething(query){
//code
}

Meteor.methods({

    methodOne: function() {
       var res = doSomething("1");
       //some stuff
       return res;
    },
  methodTwo: function() {
       return doSomething("2");
    }
});

如果这一切都写在同一个文件中,一切都还可以。但是,如果函数是在不同的文件中定义的,则该方法将以缺少函数的例外结束。我的目标是在Meteor包中定义此函数,并使用方法从另一个包中调用它。客户端无法访问函数本身,只能通过给定的调用 - 因此方法是用户的接口。

任何想法如何解决?也许对于绑定了函数的JS对象,只能通过包导出到服务器?

任何帮助表示赞赏!提前致谢

2 个答案:

答案 0 :(得分:4)

在某个文件中尝试此函数声明:

  doSomething = function(query) {
      //code here
  }

现在doSomething - 全局变量。

答案 1 :(得分:1)

好的,感谢@none发布的内容,我做了以下内容:

<强> server_packageOne.js

doSomething = function(query) {
  //code here
}

然后在package1

package.js
Package.onUse(function(api) {
//api.versionsFrom('METEOR@0.9.3.1');

//api.use(['http'], ['server']); ['client', 'server']);

api.add_files('lib/server/server_packageOne.js', ['server']);
api.export('doSomething',['server']);
});

<强> server_packageTwo.js

Meteor.methods({

methodOne: function() {
   var res = doSomething("1");
   //some stuff
   return res;
},
methodTwo: function() {
   return doSomething("2");
 }
});

在package2

package.js
Package.onUse(function(api) {
//api.versionsFrom('METEOR@0.9.3.1');

//api.use(['http'], ['server']); ['client', 'server']);
api.use('name:package1');
api.add_files('lib/server/server_packageTwo.js', ['server']);
});