Singleton Pattern
Learn how to use the Singleton pattern in Node.js using the global variable.
We'll cover the following...
Now, we’re going to spend a few words on a pattern that’s among the most used in object-oriented programming, which is the Singleton pattern. As we’ll see, Singleton is one of those patterns that has a trivial implementation in Node.js that’s almost not worth discussing. However, there are a few caveats and limitations that every good Node.js developer should know.
The purpose of the Singleton pattern is to enforce the presence of only one instance of a class and centralize its access. There are a few reasons for using a single instance across all the components of an application:
For sharing stateful information
For optimizing resource usage
To synchronize access to a resource
These are some really common scenarios.
Example
Take, for example, a typical Database
class, which provides access to a database.
// 'Database.js'export class Database {constructor (dbName, connectionDetails) {// ...}// ...}
Typical implementations of such a class usually keep a pool of database connections, so it doesn’t make sense to create a new Database
instance for each request. Plus, a Database
instance may store some stateful information, such as the list of pending ...