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);
    }
}

Readme

Keywords

Package Sidebar

Install

npm i knex-odm

Weekly Downloads

1

Version

1.6.0

License

ISC

Last publish

Collaborators

  • alisapsee
  • anatoliy
  • inca
  • nicck
  • randunel