玩 Meteor 踩过的陨石坑总结 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Meteor Official Site
http://www.meteor.com/
Follow @meteorjs on Twitter
ljbha007
V2EX    Meteor

玩 Meteor 踩过的陨石坑总结

  •  
  •   ljbha007 2015-09-07 20:48:44 +08:00 7233 次点击
    这是一个创建于 3754 天前的主题,其中的信息可能已经有所发展或是发生改变。

    玩了几天 Meteor 总结一下遇到过的坑
    如果是做教程里的 Todo 应用的确是很容易 但是如果要做复杂一点的应用坑就开始多起来 而且很多都是陨石坑级别的

    1. 文档间关联支持非常差 因为 mongoDB 没有原生的 join 操作 只能靠自己手动二次查询来关联对象,但是 - Meteor.publish 只支持返回数据库指针 不能返回已经查好的数据集(为了使用 mongoDB 的 tailable cursor 实现从数据库到应用层的数据推送)所以如果想要在服务器端直接关联只能自己用底层的 observe 和 observeChanges 的 API 来重写 publish 方法 非常复杂而且相关的文档也不全面 - 如果使用客户端 Join 的办法也会有问题 比如某个 document 中有个字段是数组 数组中有了新的元素进来 遇到这种情况 客户端直接 join 的对象就会收不到消息 因为 没有主动去 subscribe

    解决办法: https://github.com/englue/meteor-publish-composite 使用这个包可以解决服务器端的 join 逻辑复杂的问题

    关于这方面一些相关的文章: https://www.discovermeteor.com/blog/reactive-joins-in-meteor/

    1. 被关联的文档更新时不会触发 blaze 模版引擎的重绘 因为 join 上去的文档一般是直接用赋值的方式附加到主文档上的 blaze 读取该值的时候没有触发注册重绘的注册机制 所以当这个文档更新时也就不会触发重绘

    解决办法
    1.用 Template.<my object>.helpers 返回一个关联文档的指针 读取指针的值时会触发 Meteor 的重绘注册机制 所以当被关联的对象对象更新时就触发了重绘 例如

    Template.book.helpers ({ 'author' : function (){ return Authors.find (this.authorId ); } }); 
    4 条回复    2016-01-19 21:09:06 +08:00
    scarlex
        1
    scarlex  
       2015-09-07 21:39:43 +08:00
    我提一点~
    如果用户在手机中访问 Meteor 的网站,如果网络环境差一点的话, WebSocket 建立不了,然后就不用玩了...
    ljbha007
        2
    ljbha007  
    OP
       2015-09-07 21:52:42 +08:00
    @scarlex
    哈哈哈哈哈 建立不了还是不至于 只是容易掉线 我用之前也想到了
    wdhwg001
        3
    wdhwg001  
       2015-09-08 01:16:51 +08:00 via iPhone
    还有我真的嫌它库大,虽然也有混淆之后妈都不认识的优点,但是首次访问对于爪机来说还真是漫长…
    以及如果做游戏向的话,延迟补偿反倒是大坑…
    yy030913
        4
    yy030913  
       2016-01-19 21:09:06 +08:00
    只可惜没有 ORM 实体关系映射,所有集合都要在 client 中 find 出来
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4944 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 09:38 PVG 17:38 LAX 01:38 JFK 04:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86