Book Image

Nest.js: A Progressive Node.js Framework

By : Greg Magolan, Patrick Housley, Adrien de Peretti, Jay Bell, David Guijarro
Book Image

Nest.js: A Progressive Node.js Framework

By: Greg Magolan, Patrick Housley, Adrien de Peretti, Jay Bell, David Guijarro

Overview of this book

Nest.js is a modern web framework built on a Node.js Express server. With the knowledge of how to use this framework, you can give your applications an organized codebase and a well-defined structure. The book begins by showing how to use Nest.js controllers, providers, modules, bootstrapping, and middleware in your applications. You’ll learn to use the authentication feature of Node.js to manage the restriction access in your application, and how to leverage the Dependency Injection pattern to speed up your application development. As you advance through the book, you'll also see how Nest.js uses TypeORM—an Object Relational Mapping (ORM) that works with several relational databases. You’ll use Nest.js microservices to extract part of your application’s business logic and execute it within a separate Nest.js context. Toward the end of the book, you’ll learn to write tests (both unit tests as well as end-to-end ones) and how to check the percentage of the code your tests cover. By the end of this book, you’ll have all the knowledge you need to build your own Nest.js applications.
Table of Contents (16 chapters)

Chapter 8. Web sockets

As you have seen, Nest.js provides a way to use web sockets into your app through the @nestjs/websockets package. Also, inside the framework the usage of the Adapter allows you to implement the socket library that you want. By default, Nest.js comes with it’s own adapter, which allows you to use socket.io, a well known library for web sockets.

You have the possibility to create a full web socket app, but also, add some web socket features inside your Rest API. In this chapter, we will see how to implement the web socket over a Rest API using the decorators provided by Nest.js, but also how to validate an authenticated user using specific middleware.

The advantage of the web socket is to be able to have some real-time features in an application depending on your needs. For this chapter you can have a look at the /src/gateways files from the repository, but also /src/shared/adapters and /src/middlewares.

Imagine the following CommentGatewayModule, which looks...