You are previewing Node for Front-End Developers.

Node for Front-End Developers

Cover of Node for Front-End Developers by Garann Means Published by O'Reilly Media, Inc.

Chapter 6. Model-View-Controller and Sharing Code

One of the great things about Node is that it can take advantage of the lessons of all the web development frameworks that came before it. Modern architectures tend to follow the Model-View-Controller pattern to decouple the pieces of an application and make working with the code easier. To affect meaningful separation of concerns, however, the views created in MVC on the web must be completely dumb, without the ability to manage even their presentational logic. The alternative is the duplication of some code between the server and client, which can become difficult to maintain. Since Node’s client-side code can also run on the server (and vice versa) we can take interesting steps toward improving architectures and reusing code.

Implementing the MVC Pattern

How MVC is used on the client, if at all, varies depending on the needs of the application, but the trend is inarguably toward architectures that borrow from the pattern. This makes sense, as we often have the need to maintain a snapshot of our data while moving through an application that doesn’t interact with the server frequently, yet we still need the same DOM interactions the front-end has always needed. And of course we need the code that defines the path through the application and the code to render new pages or metaphors for pages. As soon as we decide to do any of that work on the server, it’s probably not surprising that we need the same things, and we’ve already implemented ...

The best content for your career. Discover unlimited learning on demand for around $1/day.