Sequelize
Getting Started
Installing
Sequelize is available via npm (or yarn).
You'll also have to manually install the driver for your database of choice:
Connecting to a database
To connect to the database, you must create a Sequelize instance. This can be done by either passing the connection parameters separately to the Sequelize constructor or by passing a single connection URI:
The Sequelize constructor accepts a lot of options. They are documented in the API Reference.
Testing the connection
You can use the .authenticate()
function to test if the connection is OK:
Closing the connection
Sequelize will keep the connection open by default, and use the same connection for all queries. If you need to close the connection, call sequelize.close()
(which is asynchronous and returns a Promise).
Terminology convention
Observe that, in the examples above, Sequelize
refers to the library itself while sequelize
refers to an instance of Sequelize, which represents a connection to one database. This is the recommended convention and it will be followed throughout the documentation.
Tip for reading the docs
You are encouraged to run code examples locally while reading the Sequelize docs. This will help you learn faster. The easiest way to do this is using the SQLite dialect:
To experiment with the other dialects, which are harder to setup locally, you can use the Sequelize SSCCE GitHub repository, which allows you to run code on all supported dialects directly from GitHub, for free, without any setup!
New databases versus existing databases
If you are starting a project from scratch, and your database does not exist yet, Sequelize can be used since the beginning in order to automate the creation of every table in your database.
Also, if you want to use Sequelize to connect to a database that is already filled with tables and data, that works as well! Sequelize has got you covered in both cases.
Logging
By default, Sequelize will log to console every SQL query it performs. The options.logging
option can be used to customize this behavior, by defining the function that gets executed every time Sequelize would log something. The default value is console.log
and when using that only the first log parameter of log function call is displayed. For example, for query logging the first parameter is the raw query and the second (hidden by default) is the Sequelize object.
Common useful values for options.logging
:
Promises and async/await
Most of the methods provided by Sequelize are asynchronous and therefore return Promises. They are all Promises , so you can use the Promise API (for example, using then
, catch
, finally
) out of the box.
Of course, using async
and await
works normally as well.Generated by ESDo
Last updated