use knex.js as database layer