Expo

Found a very cool project: https://expo.io

I already started working on react native client for Mongo Explorer, but decided to check Expo first. I had another project I wanted to build – food ordering api, so I decided to build it with Expo. Here is the source: https://github.com/alishdev/food-ordering-app

The Expo experience is extremely positive. Very quickly I was able to build a simple mobile app and run it my phone (even without Apple developer license). I see how useful could be to use Expo when you working on UI/UX with the client. Developers can quickly build screens so customers can test them on their phones when developers share the link to the project.

MERN

When I started my MEAN path I thought that I will learn all technologies related. With Mongo-Explorer-API project I used 3 out of 4 technologies:

MongoDB (M)

Express.JS (E)

and Node.JS (N)

I was planning to continue with Angular 2 in the client project which supposed to connect the API. After some consideration I came to conclusion that I want to make a detour and instead of building a Web client project in Angular 2 (A) I will work on mobile client first using React Native (N).

So I am taking a detour with MERN. I am so excited!

co

Found out that examples in MongoDB use co generator to make it easier to write and read async functions:
https://github.com/tj/co

Something very complicated (because of multiple callbacks) like:
var db = new Database('test', new Server(connectionString.server, connectionString.port));
db.open(function(err, db) {
if (err)
cb(err);
var adminDb = db.admin();
adminDb.listDatabases(function(err, dbs) {
if (err)
cb(err);
cb(null, dbFound);
});
});

becomes very simple when using co:

return co(function*() {
try
{
let db = yield MongoClient.connect(url, {ssl:connectionString.ssl});
let dbs = yield db.command({listDatabases:1});
}
catch()
{}
}