Learn about the prerequisites for Node.js: Debugging and Performance Tuning, such as the ES6 standard, experience with Express.js, and use of a database like MySQL.
There is some ES7 syntax, specifically async and await, but that won't be our focus. As this is a course on debugging and performance-tuning, we'll start with a barely functional Node.js application. The application we'll be working on is an implementation of rock, paper, scissors, a hand game for two people. It features session storage, database persistence, form handling, routing, and even microservices. As you can imagine, if something can go wrong, it will, and we'll work together to optimize and debug the app.
No prior knowledge of microservices is necessary, as we'll be exploring that topic in chapter two. The applications uses Express.js, a minimalist Node.js framework. If you haven't used Express before, or you need a refresher, check out Building a Website with Node.js and Express.js, in our library. Game data will be stored in a MySQL relational database. We're not gonna be optimizing or debugging MySQL itself in this course. Instead, we'll be focusing on handling the responses of services.
Therefore, the application will use Knex.js, a SQL query builder that simplifies database interactions with a Promise interface. No experience with MySQL or Knex is required, and we're not gonna be debugging either of them. But, if you'd like to learn more, check out Databases for Node.js Developers in our library. As this is a course on debugging, and not on systems administration, I've included a Docker configuration to get MySQL up and running, with minimal effort.
We'll install and start everything together as part of the course, and instructions for turning it off are included. No prior Docker experience is necessary for this course. If you'd like to find out more, check out Learning Docker in our library.
- Building a troubleshooting mindset
- Why measure performance?
- What's a microservice architecture?
- Managing microservices with PM2
- Effective logging strategies
- Debugging Node.js applications
- Benchmarking performance
- Profiling code execution
- Knowing what to optimize