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

Scaling Express sessions with Redis


Running our Express application with the NODE_ENV set to production will output the following message:

NODE_ENV=production npm start

Warning: connection.session() MemoryStore is not
designed for a production environment, as it will leak
memory, and obviously only work within a single process.

The default session store for Express is an in-memory store; tying sessions to a single process does not scale.

Also, if the server crashes then we lose those sessions. If we want to scale the Express application to more than one server, we will need a memory store that is decoupled from the Express application. Express has a couple of optional stores; here we will use Redis via connect-redis. Let's configure the vision application to use Redis as a session store.

npm install connect-redis ––save

We will now make a couple of changes to the Express server ./lib/express/index.js. We start by bringing in the Redis module we previously created, that configures and connects...