我正在尝试在删除实体时更新相关实体。问题是相关实体不是客户端集合的一部分。有没有办法只在服务器上进行更新?
具体示例:当调用'removeSlack'时,我想更新所有副本并从其副本数组中删除已删除的slackId。但因为副本不是客户端'Slack.findOne(copyId)'集合的一部分,所以没有找到任何内容。
Meteor.methods(
removeSlack: (slackId) ->
slack = Slack.findOne(slackId)
for copyId in _.pluck(slack.copies, 'slackId')
copy = Slack.findOne(copyId)
if copy
Slack.update(copyId, { $set: {copies: _.without(copy.copies, {slackId: slackId, userId: Meteor.userId()})}})
Slack.remove(slackId)
)
答案 0 :(得分:1)
您可以在Meteor.isServer()块中包装您只想在服务器上运行的任何代码:http://docs.meteor.com/#meteor_isserver
或者,您可以将您只想在服务器上运行的代码文件放在项目的/ server文件夹中。