我有几个不同的视图(客户端代码),我需要插入/更新我的集合。我不想让重复的代码处理插入/更新,而是将其提取到一个单独的文件中,该文件的功能可全局访问。
我已经看到了几个使用构造 Meteor.methods 完成此操作的示例。不是所有 Meteor.methods 都在服务器上执行吗?这对延迟补偿有何影响?有一个更好的方法吗?或者这是目前可以接受的方式来实现这一点?
我有几个不同的视图(客户端代码),我需要插入/更新我的集合。我不想让重复的代码处理插入/更新,而是将其提取到一个单独的文件中,该文件的功能可全局访问。
我已经看到了几个使用构造 Meteor.methods 完成此操作的示例。不是所有 Meteor.methods 都在服务器上执行吗?这对延迟补偿有何影响?有一个更好的方法吗?或者这是目前可以接受的方式来实现这一点?
在我这边,我使用以下结构:
/common/collections/[each collection gets a file where it is defined]
/common/models/[each collection gets a model file where the model is defined]
这样我就可以在客户端和服务器上尽可能多地重用代码
我使用 CoffeeScript 来创建类,但你可以用纯 Javascript 做同样的事情。
我的模型构造函数接受属性散列(meteor object),然后它可以封装我的方法。
OffTopic #1:作为奖励,我的模型扩展了一个我命名为“MeteorModel”的超级对象,我在其中放置了模型之间的共享代码。
OffTopic #2:我还将允许和拒绝逻辑放在这些模型中,以便我可以从客户端或服务器端执行任意验证。非常有用,因为我还没有找到更好的方法来模拟对象修改而无需在普通 Meteor 中实际修改它。
I prefer not to work directly with Meteor.Collections and write my code on the side as it is still unclear how Meteor will evolve and I want room to changed my approach when it does.