Flavien Volken
Flavien Volken

Reputation: 21279

Exposing Meteor's mongo DB to a stateless client

I need a legacy java application to pull information from a meteor's collection. Ideally, I would need a simple service where my app would be able to download the latest list of items prices. A scenario like going on (through an http GET):

www.mystore.com/listOfPrices

would return a json with an array

[{"item":"beer", price:"2.50"}, {"item":"water":, price:"1"}]

The problem is that I cannot make a meteor page printing the result "as is" because meteor assumes the client supports javascript. Note that I do plan to implement the java DDP client in a latter stage but here I would like to start with a very simple service.

Idea: I thought of doing my own Node.js request aside of the running meteor service in order to retrieve a snapshot of the collection. Then this request would be using a server based javascript DDP client in order to subscribe and filter to then return the collection once loaded as a jSON document (array).

Any idea on how to achieve this ?

Upvotes: 0

Views: 152

Answers (1)

Dan Dascalescu
Dan Dascalescu

Reputation: 151936

Looks like you want to provide a REST interface. See the MeteorPedia page on REST for how to expose collection data. It might be as simple as

prices = new Mongo.Collection('prices');

// Add access points for `GET`, `POST`, `PUT`, `DELETE`
HTTP.publish({collection: prices}, function (data) {
  // here you have access to this.userId, this.query, this.params
  return prices.find({});
});

Upvotes: 1

Related Questions