0.3.0 • Published 6 years ago

@mtti/microservice-sequelize v0.3.0

Weekly downloads
1
License
Apache-2.0
Repository
github
Last release
6 years ago

status alpha npm version

A plugin for @mtti/microservice which connects to a database with Sequelize when the microservice starts.

If the @mtti/microservice-nats plugin is also in use, models with exportResource set to true are exposed over NATS with @mtti/nats-rest.

Example

// main.js

const Microservice = require('@mtti/microservice');
const sequelizePlugin = require('@mtti/microservice-sequelize');
const models = require('./models');

const service = new Microservice('myservice');

/*
// Set database URL manually instead of DB_SERVER env variable.
service.configure({
    dbServer: 'postgres://user:pass@localhost:5432/myservice'
});
*/

service.use(sequelizePlugin(models));

// Models are available, keyed by name, under service.models

service.start()
    .catch((err) => {
        console.log(err);
        process.exit(1);
    })
// models.js

const document = require('document.model');

module.exports = [
    document,
];
// document.model.js

return (sequelize, DataTypes) => {
    const document = sequelize.define('document', {
        id: {
            primaryKey: true,
            type: DataTypes.UUID,
            defaultValue: DataTypes.UUIDV4,
        },
        title: {
            type: DataTypes.TEXT,
        },
        body: {
            type: DataTypes.TEXT,
        },
    });

    /*
    document.associate = (models) => {
        model.hasOne(models.user);
    };
    */

    return document;
};