简体   繁体   中英

Meteor - Meteor.Collection.get not defined in production

I'm trying to use Meteor.Collection.get(collection_name) (server side only) in production, it works well in development ; but as soon as I try to build my app with meteor --production , meteor throw

TypeError: Meteor.Collection.get is not a function

I suppose that Meteor.Collection.get was only made for debugging purposes (I can't find anything about it in the official documentation). Any idea how I can use it in production ?

I am not sure, where Meteor.Collection.get comes from in your code but I know the very reliable and long time battle proof dburles:mongo-collection-instances which allows you to retrieve a Mongo.Collection via it's name.

Add the package:

meteor add dburles:mongo-collection-instances

Create a collection:

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

Get the collection:

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

It works on the server and the client and runs fine in production.

Documentation: https://github.com/dburles/mongo-collection-instances

Edit: A note on --production

This flag is only there to simulate production minifaction. See the important message here in the docs: https://guide.meteor.com/deployment.html#never-use-production-flag

You should always use meteor build to build a production node app. More to read here: https://guide.meteor.com/deployment.html#custom-deployment

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM