我认为在 Meteor 中定义服务器端类来存储有关系统的信息是明智的做法。该信息应由选定的用户访问。它不存储在 MongoDB 中,所以据我了解,订阅和发布不是一个选项。
这是我的简化方法:
if(Meteor.isServer) {
serverVar = true; // could depend on server logic
}
Meteor.methods({
myMethod: function() {
if(serverVar) {
return "secret";
} else {
throw Error();
}
}
}
然后,在客户端:
Meteor.call("myMethod", function(err, res) {
console.log(res);
}
不幸的是,我得到了一个ReferenceError
that serverVar
没有定义。在我看来,使用Meteor.isServer
作为定义时的条件serverVar
打破了这个概念。但是我如何使用访问服务器端变量Meteor.methods
?什么样的方法可以解决我的问题?非常感谢!
更新:谢谢您的建议。serverVar
可以是服务器上定义的任何内容,但不是Meteor.isServer
。因此,我认为只要定义serverVar
在客户端上为 false 并不能解决我的问题。
var serverVar = false; // Pre-define serverVar
if(Meteor.isServer) {
serverVar = true; // could depend on server logic
}
Meteor.methods({
myMethod: function() {
if(serverVar) {
return "secret";
} else {
throw Error();
}
}
}
Or even
var serverVar = Meteor.isServer;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)