Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/easterneas/fastify-sequelize
A plugin for Fastify to integrate Sequelize into your project. Supports Sequelize 6 and can play along nicely with `sequelize-cli`.
https://github.com/easterneas/fastify-sequelize
fastify fastify-plugins nodejs sequelize sequelize-cli
Last synced: 4 days ago
JSON representation
A plugin for Fastify to integrate Sequelize into your project. Supports Sequelize 6 and can play along nicely with `sequelize-cli`.
- Host: GitHub
- URL: https://github.com/easterneas/fastify-sequelize
- Owner: easterneas
- License: mit
- Created: 2021-10-23T15:00:09.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2021-10-24T15:01:28.000Z (about 3 years ago)
- Last Synced: 2024-10-30T07:27:36.096Z (13 days ago)
- Topics: fastify, fastify-plugins, nodejs, sequelize, sequelize-cli
- Language: JavaScript
- Homepage:
- Size: 281 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# fastify-sequelize
This is a plugin for Fastify to integrate Sequelize deeply into your project.
Supports Sequelize up to version 6 and can play along nicely with `sequelize-cli`.`fastify-sequelize` mostly 'borrows' the mechanics of `sequelize-cli`'s `index.js`
model file. By doing so, it will be imported immediately, making generated
Sequelize models ready to use.## Why the fuss?
I think integrating directly into `fastify` instance is better (and cleaner, in
my opinion). And by doing so, handling routes will eliminate the need to
import `models` directory manually to each route handlers (or controllers).## Installation
1. Install via:
- NPM: `npm i @easterneas/fastify-sequelize`, or
- Yarn: `yarn add @easterneas/fastify-sequelize`
2. Register this plugin:
```js
fastify.register(require('@easterneas/fastify-sequelize'), options)
```
where `options` contains your Sequelize configuration.
3. There is no step 3, by now you can use it through `this.models` (or
`fastify.models`) already!### Example
It's pretty easy to integrate the already-installed Sequelize to your Fastify project.
Let me show you how.I will assume that your Sequelize configuration file is in a default location,
created through `sequelize-cli` package.
#### If you have Fastify project made with `fastify-cli````js
const fp = require('fastify-plugin')
const config = require('../config/config.json')module.exports = fp(async function (fastify, opts) {
fastify.register(require('@easterneas/fastify-sequelize', config))
})
```#### If you create your Fastify project manually
```js
// app.jsconst fastify = require('fastify')
const config = require('./config/config.json')const app = fastify()
fastify
// ...
.register(require('@easterneas/fastify-sequelize'), config)
// ...
// .listen( ... )
```## Usage
After installation, you can just use `this.models` when you handle through routes.
By default, `sequelize` and `Sequelize` are included, and it will search through
default `models` in your project's root directory.If there is one, it will start importing and parsing Sequelize models, either
it's generated manually, or by using `sequelize-cli` package. Neat!## Issues
If there are bugs appeared when using this plugin, feel free to create
[a new issue](https://github.com/easterneas/fastify-sequelize/issues).
But remember to always add logs and the version of the plugin before posting
issues here, and thank you for letting me know about the issues!