knex-odm

1.6.0 • Public • Published

Knex.js-based ODM

Install

knex-odm requires knex as peer dependency, so you need to install both:

npm i --save knex knex-odm

Create repositories

const knex = require('./knex');
const { repository, validators } = require('knex-odm');
 
const User = module.exports = repository(knex, {
 
  table: 'user',
 
  schema: {
 
    'name': 'string',      // type: 'string', required: true
 
    'nickname': 'string?', // type: 'string', required: false
 
    'role': {
      type: 'string',
      default: 'student',
      validators: [
        validators.enum('student', 'teacher', 'administrator'),
      ],
    },
 
  },
 
  methods: {
 
    await findByRole(role, limit = 25, offset = 0) {
      return await this.query()
        .where('role', role)
        .orderBy('name', 'asc')
        .limit(limit)
        .offset(offset);
    }
 
  }
 
});

Use

 
async function main() {
    const User = require('./repositories/user');
 
    const teachers = await User.findByRole('teacher');
 
    for (const teacher of teachers) {
      console.log(teacher.name, teacher.role);
    }
}

/knex-odm/

    Package Sidebar

    Install

    npm i knex-odm

    Weekly Downloads

    0

    Version

    1.6.0

    License

    ISC

    Last publish

    Collaborators

    • alisapsee
    • anatoliy
    • inca
    • nicck
    • randunel