2.2.1 • Published 4 years ago

objection-express-crud v2.2.1

Weekly downloads
10
License
MIT
Repository
bitbucket
Last release
4 years ago

objection-express-crud

version npm

Installation

npm i --save objection-express-crud

Example

import bodyParser from 'body-parser';
import express from 'express';
import Knex from 'knex';

import { Model } from 'objection';
import { buildTable, Column, Table } from 'objection-annotations';
import objectionCrud from 'objection-express-crud';

@Table('todo_list')
class Todo extends Model {
    @Column('increments')
    id: number;

    @Column('string', { required: true, schema: { maxLength: 20 } })
    content: string;

    @Column('integer', { required: true })
    priority: number;
}

(async () => {
    await buildTable(Knex({
        client: 'sqlite3',
        connection: {
            filename: process.env['DB_FILE'],
        },
        useNullAsDefault: true,
    }), Todo);

    const app = express();
    app.use(bodyParser.json());

    // Register CRUD route
    app.use('/todo', objectionCrud(Todo, {
        async resultWrap(result, req, { routeName, getTotalPage, actualPage, getCount }) {
            if (routeName === 'list') {
                return {
                    items: result, paging: {
                        current: actualPage,
                        totalItem: await getCount(),
                        total: await getTotalPage(),
                    },
                };
            }

            return result;
        },
    }));

    app.listen(8080);
})();

Options

  • insertGraphOptions
  • routes: Register express routing for objection, default option is true
  • preRoutes: Register handler(s) before objection handler
  • postRoutes: Register handler(s) after objection handler
  • listFn: Function to modify query builder for listing route
  • detailFn: Function to modify query builder for detail route
  • resultWrap: Wrap function of query result
  • handleResponse
  • handleForbidden
  • handleNotFound
  • handleError
  • canList
  • canDetail
  • canInsert
  • canUpdate
  • canDelete
2.2.1

4 years ago

2.2.0

4 years ago

2.1.1

4 years ago

2.1.0

4 years ago

2.0.0

4 years ago

1.3.1

5 years ago

1.3.0

5 years ago

1.2.0

5 years ago

1.1.0

5 years ago

1.0.0

5 years ago