Book Image

Advanced Express Web Application Development

By : Andrew Keig
Book Image

Advanced Express Web Application Development

By: Andrew Keig

Overview of this book

Building an Express application that is reliable, robust, maintainable, testable, and can scale beyond a single server requires a bit of extra thought and effort. Express applications that need to survive in a production environment will need to reach out to the Node ecosystem and beyond, for support.You will start by laying the foundations of your software development journey, as you drive-out features under test. You will move on quickly to expand on your existing knowledge, learning how to create a web API and a consuming client. You will then introduce a real-time element in your application.Following on from this, you will begin a process of incrementally improving your application as you tackle security, introduce SSL support, and how to handle security vulnerabilities. Next, the book will take you through the process of scaling and then decoupling your application. Finally, you will take a look at various ways you can improve your application's performance and reliability.
Table of Contents (14 chapters)
Advanced Express Web Application Development
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Summary


Express in commercial production environments can look a little different, but for good reason. Many of the tasks Express/Node support can be performed better by other tools. In our application, we have tried to stay on the node stack; we have chosen to use stud to terminate SSL as our entire application runs on SSL. Stud will outperform all in this space, including Nginx and Haproxy. Stud will forward unencrypted responses to Hipache, which balances load. Hipache is based on node-http-proxy; it uses cluster for failover. More importantly, unlike node-http-proxy, it can manage memory, making it a reasonable choice for a load balancer.

Hipache works well, but if it's performance you really seek, Nginx and Haproxy are the de facto tools to reach for. For failover, we are using node's cluster module, which along with domains, makes our application a little more robust.

Our static file requirements are minimal, so we have chosen to serve, cache, compress, and minify our static resources...