我要做的是以下内容:
function doSomething(query){
//code
}
Meteor.methods({
methodOne: function() {
var res = doSomething("1");
//some stuff
return res;
},
methodTwo: function() {
return doSomething("2");
}
});
如果这一切都写在同一个文件中,一切都还可以。但是,如果函数是在不同的文件中定义的,则该方法将以缺少函数的例外结束。我的目标是在Meteor包中定义此函数,并使用方法从另一个包中调用它。客户端无法访问函数本身,只能通过给定的调用 - 因此方法是用户的接口。
任何想法如何解决?也许对于绑定了函数的JS对象,只能通过包导出到服务器?
任何帮助表示赞赏!提前致谢
答案 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']);
});