...

/

Singleton Pattern

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 ...