I really could have used this tutorial a few months ago. I made a bit of a toy node/backbone app. My first iteration attempted to unify the models across frontend and backend, unit testing them, etc, but it ended up being so kludgy and hard to debug that I went with frontend only and just stored the JSON on the backend. The benefit of the OP's strategy however is that its much safer to have the parsing and validation on the backend so people can't put bad stuff in your database as easily.
In the end I ended up redoing the project as a CLI app in Haskell.
In the end I ended up redoing the project as a CLI app in Haskell.