express-crudify
v0.0.6
Published
CRUD routes generator for the Express package
Readme
express-crudify
Generator of basic CRUD routes for a Sequelize database model
Should be pretty easy to use and self-explanatory. Here's basically what you need to get started:
const app = express()
const userRoutes = generateRouter({ model: User })
app.use(express.json())
app.use('/user', userRoutes)
const server = app.listen(3001, () => console.log(`[express-crudify] Launched test server`))Here are the options you may use:
export interface RouterGenOptions<T extends Model> {
model: ModelStatic<T>;
/**
* These options will be used when retrieving ('GET') objects from the
* database.
* @example { getAll: { order: [ ['createdAt', 'DESC' ] ] } } // Order getAll by creation date
*/
findOptions?: {
getOne?: FindOptions;
getAll?: FindOptions;
}
/**
* Any middlewares to be called before the routes themselves.
* @example { post: auth.isAdmin } // Integrate your auth system
*/
middlewares?: {
getOne?: Middleware;
getAll?: Middleware;
post?: Middleware;
put?: Middleware;
delete?: Middleware;
}
/**
* A list containing all the fields that the 'POST' & 'PUT' routes may
* modify within the model.
* @example [ 'firstName', 'lastName', 'socialMedia' ] // Will only allow those 3 fields to be modified.
*/
allowedModifyFields?: string[];
hooks?: {
beforeCreate?: (body: any, req: Request) => Promise<any> | any;
afterCreate?: (inst: T, req: Request) => Promise<void> | void;
}
}Updates and Contributing
Just do a pull request. Don't expect this to be regularly updated (maybe if it gets extremely popular or something).
