IBM's LoopBack is a massive headache

I spent a few days trying to write up an example tutorial for using LoopBack with MySQL.

I scrapped it.

Everything was going fine until I realized the project that the example tutorial set out to help create had wildly inaccurate query results. It worked great if you were just grabbing a single set of data from a single table, but if you needed any related data it was just a pain in the ass.

LoopBack is also really opinionated. Say goodbye to your MySQL naming conventions, because it seems impossible to configure LoopBack to work with any sort of prefix system, or anything where you'd like to call your JSON property a different name than the associated column's name.

Good luck with the documentation, too. Take a look at this article for Embedded Models.

I was simply trying to embed a user address in the user results, where the user and their address are two tables.

I could get a list of all of the addresses, and all of the users, but I could never embed it without the SQL query builder generating garbage SQL. I imagine it's a user error, but the documentation and GitHub issue trackers offered nothing close to a potential realization, so I ended up giving up.

I don't want to discredit it - it seems great if you have a small, simple data schema and need basic CRUD operations fast (and let's not forget, also if you adhere to LoopBack's expected table naming standards).

But if you need anything requiring a JOIN or any sort of complex SQL, just use an ORM or the Node MySQL driver with Express and save yourself the headache. Really. I just threw out ~12 hours of writing because I couldn't figure out what seems to me is an otherwise relatively straightforward task.