Node.js online course. Professional REST API development - course RUB 32,900. from HTML Academy, training 2 months, Date October 15, 2023.
Miscellaneous / / November 28, 2023
In this course you will learn how to make real projects, the same level of complexity as in the industry. And you will do them correctly, so that after training you will produce high-level results that companies are willing to pay for.
The course is designed for those who want to change their profession and become a highly paid professional. It is suitable for working people who have little time.
Section 1 Introduction to Node.js. CLI
Let's consider the scheme of work on the course. Let's get acquainted with the Node.js platform and find out what tasks it is best suited for solving. Let's discuss how server code in JavaScript differs from regular code. Let's prepare the basis for the project and write the first application with a command line interface (CLI).
Organizational matters.
Review of personal projects.
Scheme of work on the course.
Demo project repository.
Collapse / Expand
Practice
TypeScript and Node.js.
Classes in TypeScript.
Preparing the environment.
CLI development.
TSV data format.
Section 2 Event cycle. Streams
Let's learn how the event loop works in Node.js. Let's get acquainted with micro- and macrotasks. Let's figure out what determines the order of execution of asynchronous code. Then let's dive into working with the file system. We will learn how to read and create files, what restrictions there are, and get acquainted with streams. In practice, we will figure out how to generate large data files and interact with remote servers from Node.js.
How the EventLoop works.
Publisher-Subscriber pattern (EventEmitter).
Buffer abstraction.
Streams.
Collapse / Expand
Practice
Export data to TSV.
Reading large files.
HTTP requests from Node.js.
Section 3 Application Architecture
Let's start designing the architecture of the main application. Let's discuss different approaches to building architecture. Let's learn how to split an application into separate layers. We will design the first application services: configuration management, logging. Let's get acquainted with inversion of control (IoC) and assemble a dependency container. Let's learn how to use the Inversify library and inject dependencies.
Environment variables.
Logging.
Collapse / Expand
Practice
Application architecture.
Configuration management service.
Logging service (pino).
IoC
Dependency injection.
Section 4 Introduction to databases. MongoDB
Let's get acquainted with databases and find out what databases are and how they differ. Let's figure out how to store data on the server. In practice, we will get acquainted with MongoDB, learn how to run it using Docker, and practice retrieving and writing data. Let's learn how to work with MongoDB from Node.js: connection, collections, models (Mongoose, Typegoose).
Introduction to databases.
Introducing Docker.
Mongoose.
Collapse / Expand
Practice
Installing MongoDB.
Client for MongoDB.
Mongoose.
Typegoose.
Section 5 Databases in practice. REST Design
Let's practice working with MongoDB from Node.js: we'll describe all the models, get acquainted with validators, and develop services for accessing data. In practice, let's get acquainted with the DTO (Data Transfer Object) pattern. Let's connect services for working with the database to the CLI. Then we'll move on to REST API design and design the first version of the REST API. Let's get acquainted with the OpenAPI format and describe the first version of the specification.
Sharing of responsibilities.
Data Transfer Object.
REST API design.
OpenAPI format, Swagger.
Collapse / Expand
Practice
Services for accessing data.
Data validation.
Importing data into the database (CLI).
OpenAPI Specification.
Section 6 Express.js
Let's start implementing the REST API. Let's get acquainted with the Express.js framework and discuss its strengths and weaknesses. Let's get acquainted with routing. Let's design an abstraction layer: controllers. Let's learn how to generate and process requests to the API. Let's get acquainted with the additional tool nodemon. Let's learn how to handle errors.
Processing client requests.
Express.js.
And again MVC.
Collapse / Expand
Practice
Routing.
Restarting the application.
Error processing.
Controllers.
Section 7 Middleware. Validation. Uploading files
Let's continue to get acquainted with Express.js and understand the concept of middleware. Let's find out what it is and what tasks are convenient to solve using middleware. Then we’ll design an additional abstraction and write some of our own middleware.
After this, we will smoothly move on to the issue of data validation - we will find out why it is important to verify data from clients, and we will organize verification of input data in the project. In practice, we will get acquainted with the validation tools joi and class-validator.
After that, let's move on to downloading files. Clients can transfer not only text data, but also entire files. Let's learn how to receive them on the server side, save them and return them to clients. In practice, we implement the loading of user avatars.
Middleware.
Why and how to validate data.
Uploading files.
Collapse / Expand
Practice
Middleware for data validation.
class-validator for validation.
Uploading files using multer.
Middleware static.
Section 8 Access Restriction. Authorization
Not all resources should be available to anonymous clients, so let's figure out how to restrict access to certain resources. Let's learn how to restrict access to certain routes in Express.js. Let's figure out how authorization differs from authentication. Let's get acquainted with JWT (JSON Web Tokens) and learn how to use them in practice. Let's practice creating private routes and implement the scenario “Login to a private part of the application.”
Authorization and authentication.
Sessions.
JSON Web Tokens.
Collapse / Expand
Practice
Private routes.
JWT.
jose.
Section 9 Backend and frontend
Let's find out how to make backend and frontend friends. Let's learn how to reuse DTO on the frontend side. Let's remember about the “Adapter” pattern. Let's get acquainted with CORS and find out what problems it solves. Let's refactor error handling: let's see how to format errors for people and machines.
DTO and frontend.
CORS.
Collapse / Expand
Practice
CORS.
Refactoring: separating errors.
Section 10 Final
Let's summarize the course. Let's discuss the further plan for learning Node.js.
FoxSPb2012
31.05.2022 G.
Cool course on Node.js
Advantages: presentation of material, work with a mentor, Disadvantages: following the course program, no opportunity to change a personal project. I really liked the course, it helped expand my understanding of applications as such (after all, we are all users of certain applications), let me work on the demo repository with development approaches/technologies, look at everything on the training project and realiz...
FoxSPb2012
31.05.2022 G.
Cool course on Node.js
Advantages: presentation of material, work with a mentor, Disadvantages: following the course program, no opportunity to change a personal project. I really liked the course, it helped expand my understanding of applications as such (after all, we are all users of certain applications), let me work on the demo repository with development approaches/technologies, look at everything on the training project and realiz...