npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

sequelize-models-loader

v0.1.1

Published

It's a simple module for creating models loading from path easily.

Readme

sequelize-models-loader

It's a simple module for creating models loading from path easily.

Install

You can get this module via npm.

npm install sequelize-models-loader --save --save-exact

Usage

Setup

You just need to call module and set sequelize connection parameters. Here are some examples of how to initialize a new connection:

Passing a existing sequelize connection:


var pathToModelsFolder = './models';
var Loader = require('sequelize-models-loader');
loader = new Loader(path.join(__dirname, './models'), sequelize);

Passing a existing url with connection options:


var url = process.env.DATABASE_URL;
var options = {
  dialect: 'postgres',
  pool: {
    max: 5,
    min: 0,
    idle: 10000
  },
  define: {
    timestamps: true,
    freezeTableName: true
  }
};

var Loader = require('sequelize-models-loader');
var loader = new Loader(pathToModelsFolder,url, options);

Using Models

Using our created models is easy as calling out singleton sequelize object and call model() method passing the model name we use for our model.

For exmple if we have a model file called user.js , our model will be called like this:


var User = loader.model('user');

So we now get access to all of our Model class.

Models

When we create a model is so easy , in fact modeling is just like modeling for a regular sequelize model. But for table options and relationships we have two special properties , check example below to see how to created to models with relationship.

First we have or player.js model


'use strict';

'use strict';

var validateName = {
  len:[20,150],
  notEmpty: true
}

module.exports = function(Sequelize) {
    return {
        model: {
          playerId: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true },
          name: { type: Sequelize.STRING(150), allowNull: false, unique: true , validate: validateName }
        },
        relations: [{
          relationType: 'belongsTo',
          relatedModel: 'team',
          options: { as: 'teamId', foreignKey: 'fk_player_team' }
        }],
        options:{
          freezeTableName: true
        }
    };
};

Now we have related model called team.js


'use strict';

var validateName = {
  len:[20,150],
  notEmpty: true
}

module.exports = function (Sequelize) {
    return {
        model: {
          teamId: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true },
          name: { type: Sequelize.STRING(150), allowNull: false, unique: true , validate: validateName }
        },
        options:{
          freezeTableName: true
        }
    };
};

Easy , isn't it ?

Sequelize Instance

If you need sequelize instance or sequelize connection associated with the loader you just need to call #getSequelize(). With this you can make things like raw queries or call sync method.


var sequelize = loader.getSequelize();
sequelize.sync({ force: true });

Contribution

For write your own code please add test first and then the actual code.I use mocha based test running. And I like assert but feel free to use should or expect.

npm test

Change History

You can see all change history here

License

The MIT License

Copyright (c) 2016 Carlos Castillo Oporta www.carloscastillo.me