gpt4 book ai didi

Meteor 未在发布前转换我的文档

转载 作者:行者123 更新时间:2023-12-02 02:02:32 25 4
gpt4 key购买 nike

出于安全原因,我想在将文档发布到客户端之前添加和删除文档的属性,这取决于一些动态计算。我关注Meteor documentation还有这个other SO question .

为了简单起见,假设我尝试将以下静态属性添加到每个文档(仅限服务器端):

var Docs = new Meteor.Collection('docs', {
transform: function (f) {
console.log('Tagging doc: ' + f._id);
f.myProp = 1;
return f;
}
});

由于某些奇怪的原因,这不起作用:

  1. 只有部分文档触发转换功能,不是全部(我可以通过控制台日志记录看到这一点)
  2. 在客户端,没有任何文件被标记为myProp

我没有尝试在客户端和服务器上都进行转换,因为在我现实生活中的应用程序中,我无法在客户端上进行必要的计算。

最佳答案

集合的转换函数是为了方便而不是安全——请注意,当您在游标上调用 observeChanges 时,信息不会通过转换函数传递(它 在调用 observe 时通过转换)。发布游标的默认方式是调用 observeChanges

如果您想去除您正在发布的游标的字段,请使用 fields 选项在您的集合中查找。如果您想做一些更复杂的事情,如果您的发布函数调用 addedchangedremoved 本身,则可以显式地执行您需要的任何计算,而不是返回游标。查看 Meteor.publish 的文档了解详情。

关于Meteor 未在发布前转换我的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16512211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com