Improving response time in AngularJS web app using mongolab, nodejs and express

I am developing an Angular Web App that receives its data from a nodejs/express API. This API runs mongoose that connect to MongoLab (the free account).

When receiving data, I experience a response time > 500ms for small data sets (1.5kb) and > 1s for "large" data sets (hundreds of kb).

This is clearly already too much and I am affraid it will be even worse when my db will grow.

The current process is as follow:

  1. Client goes to mysite.com/discover
  2. Server send the Angular App
  3. Client does an ajax request to mysite.com/api/collections
  4. Server connects to MongoLab, receives data
  5. Server send back data to client

This process is very fast in local development (local node, local MongoDB) (<20ms) but takes so much time when put online. I investigated what was taking so much time and I found two equal contributions:

  • API response time
  • MongoLab response time

The MongoDB query takes no time (<1ms).

The Question

What are my options to reduce this response time? Is it possible to store locally the data and use mongoLab as a "copy" (it would remove the MongoDB latency in most cases)? If so, would you suggest disk temporary storage, mongoDB replica, ...?

What I tried

I migrated my mongoLab DB to match the physical localization of my server (VM on digitalocean), it improve by a few 50ms, not much more.

Thanks a lot