Book Image

Supercharging Node.js Applications with Sequelize

By : Daniel Durante
4 (1)
Book Image

Supercharging Node.js Applications with Sequelize

4 (1)
By: Daniel Durante

Overview of this book

Continuous changes in business requirements can make it difficult for programmers to organize business logic into database models, which turns out to be an expensive operation as changes to the database may result in errors and incongruity within applications. Supercharging Node.js Applications with Sequelize helps you get to grips with Sequelize, a reliable ORM that enables you to alleviate these issues in your database and applications. With Sequelize, you'll no longer need to store information in flat files or memory. This book takes a hands-on approach to implementation and associated methodologies for your database that will have you up and running in no time. You'll learn how to configure Sequelize for your Node.js application properly, develop a better sense of understanding of how this ORM works, and find out how to manage your database from Node.js using Sequelize. Finally, you'll be able to use Sequelize as the database driver for building your application from scratch. By the end of this Node.js book, you'll be able to configure, build, store, retrieve, validate, and associate your data from a database to a Node.js application.
Table of Contents (16 chapters)
1
Part 1 – Installation, Configuration, and the Basics
4
Part 2 – Validating, Customizing, and Associating Your Data
10
Part 3 – Advanced Queries, Using Adapters, and Logging Queries

Putting it all together

Our business partner just informed us that we want to be able to record transaction receipts for every applicable event. This could be for the boarding ticket, extra luggage, or an additional water bottle, which means there is no deterministic structure for our data. For this task, we will need to generate a new model, Receipts, and update our BoardingTicket model. Here are the steps:

  1. First, we can begin by generating a new model called Receipts for storing transaction events:
    sequelize-cli model:generate --name Receipts --attributes receipt:json
  2. Then, run our migration:
    sequelize db:migrate
  3. Next, we will want to add another life cycle event to our BoardingTicket model located in models/boardingticket.js by adding the following code at the end of the module.exports block:
      BoardingTicket.afterSave('saveReceipt', 
          async(ticket, options) => {
        await sequelize.models...