【问题标题】:Meteor - Meteor.Collection.get not defined in productionMeteor - Meteor.Collection.get 未在生产中定义
【发布时间】:2019-07-06 10:50:42
【问题描述】:

我正在尝试在生产中使用Meteor.Collection.get(collection_name)(仅限服务器端),它在开发中运行良好;但是一旦我尝试使用meteor --production 构建我的应用程序,流星就会抛出

TypeError: Meteor.Collection.get 不是函数

我认为 Meteor.Collection.get 仅用于调试目的(我在官方文档中找不到任何相关信息)。知道如何在生产中使用它吗?

【问题讨论】:

    标签: javascript meteor dev-to-production


    【解决方案1】:

    我不确定Meteor.Collection.get 在您的代码中来自哪里,但我知道dburles:mongo-collection-instances 非常可靠和长期的战斗证明,它允许您通过它的名称检索 Mongo.Collection。

    添加包:

    meteor add dburles:mongo-collection-instances
    

    创建一个集合:

    // server/client
    export const MyDocs = new Mongo.Collection('myDocs')
    

    获取收藏:

    // anywhere else
    const MyDocs = Mongo.Collection.get('myDocs')
    

    它可以在服务器和客户端上运行,并且在生产中运行良好。

    文档:https://github.com/dburles/mongo-collection-instances

    编辑:关于--production的注释

    此标志仅用于模拟生产缩小。请参阅文档中的重要信息:https://guide.meteor.com/deployment.html#never-use-production-flag

    您应该始终使用meteor build 来构建生产节点应用程序。在这里阅读更多内容:https://guide.meteor.com/deployment.html#custom-deployment

    【讨论】:

    • 谢谢,我已经试过这个包了,这个包会降低服务器的速度(至少比平时慢 2 到 3 倍)。我目前正在我的来源中搜索定义(还找不到)
    • 您是否阅读了有关生产版本的链接和--production 标志?
    • 是的,谢谢,我正在使用 --production 标志进行性能测试,我不会将其用于部署
    • 它似乎与我的环境相关联,当处于开发模式时,项目的源代码是使用我的计算机流星源(不是项目的源)构建的,其中包含 dburles:mongo-collection-instances包(我不知道为什么)。所以我在项目上重新安装了包,现在它工作正常(服务器不再慢了)。还是谢谢你!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 2017-10-24
    • 1970-01-01
    相关资源
    最近更新 更多