0.2.8 • Published 7 years ago
@febbyjs/febby v0.2.8
Table of Contents
- Febby
Febby
Febby
Parameters
configObject Represents basic app setup. (optional, default{})
Examples
const config = {
port: 3000,
hostname: 'abc.xyz',
db: {
url: 'mongodb://localhost/test'
},
bodyParser: {},
cors: {},
helmet: {},
version: 'v1'
};
const Febby = require('febby');
const febby = new Febby(config);
febby.bootstrap();route
Register Route
Parameters
routeConfigObject the route object used to create route configuration.
Examples
const febby = new Febby(config);
// create router
const api = febby.router('/api');
febby.route({
router: api,
method: 'get',
path: '/',
middlewares: [],
handler: (req, res, next) => {
// do business
}
});
febby.bootstrap(()=>{
console.log('app started');
})routes
Register Route list
Parameters
routesArray list of route objects
Examples
const febby = new Febby(config);
// create router
const api = febby.router('/api');
const routes = [
{
router: api,
method: 'get',
path: '/',
middlewares: [],
handler: (req, res, next) => {
// do business
}
},
{
router: api,
method: 'get',
path: '/echo',
middlewares: [],
handler: (req, res, next) => {
res.json({echo:req.url});
}
}
];
febby.routes(routes);
febby.bootstrap(()=>{
console.log('app started');
})middleware
Register middleware.
Parameters
middlewareFunction Represents middleware function.routerObject Represents Express Router object by default it is app router object.
Examples
const febby = new Febby(config);
// create router
const api = febby.router('/api');
const fn = (req,res,next)=>{
// some logic or validation
next();
}
const fn2 = (req,res,next)=>{
// some validation logic
next();
}
// middleware runs on api router
febby.middleware(fn,api);
// middleware runs on app router
febby.middleware(fn);middlewares
Register Middlewares.
Parameters
middlewaresArray<Object> Represents list of middlewares.routerObject Represents Express Router Object, default to app router.
Examples
const febby = new Febby(config);
// create router
const api = febby.router('/api');
const fn = (req,res,next)=>{
// some logic or validation
next();
}
const fn2 = (req,res,next)=>{
// some validation logic
next();
}
// middleware list runs on api router and router is optional
febby.middlewares([fn,fn2],api);router
Register a Router.
Parameters
urlstring Represents url.routerObject Represents Express Router object, default to app router object.optionsObject Represents Express Router config options.
Examples
const febby = new Febby(config);
// create router
const api = febby.router('/api'); // path = /api
// users subroute mounted on /api
const userApi = febby.router('/users',api); // path = /api/users
const fn = (req,res,next)=>{
// some logic or validation
next();
}
const fn2 = (req,res,next)=>{
// some validation logic
next();
}
// this middleware list runs on api router
febby.middlewares([fn, fn2], userApi);
// this middleware runs on app router
febby.middleware(fn);
febby.route({
router: userApi,
method: 'get',
path: '/',
middlewares: [],
handler: (req, res, next) => {
// do business
}
});
febby.bootstrap(()=>{
console.log('app started');
})connection
Establish Connection between app and database.
Parameters
Examples
const config = {
port: 3000,
hostname: 'abc.xyz',
bodyParser: {},
cors: {},
helmet: {},
version: 'v1'
}
const febby = new Febby(config);
// create router
const api = febby.router('/api');
const fn = (req,res,next)=>{
// some logic or validation
next();
}
const fn2 = async (req,res,next)=>{
const db = febby.model(); // Returns db models object
const users = await db.user.find({});
// some validation logic on users
next();
}
// this middleware runs on api router
febby.middleware(fn,api);
// this middleware runs on app router
febby.middleware(fn);
// if db config specified then febby will try to connect to database automatically
// to make database connection externally then use febby.connection
const options = {
useNewUrlParser: true,
// other mongoose options
}
const url = 'mongodb://localhost:27017/test';
febby.connection(url, options)
febby.route({
router: api,
method: 'get',
path: '/:id',
middlewares: [],
handler: async (req, res, next) => {
const user = febby.Model('user'); // get registered model by name
const info = await user.findById(req.params.id);
res.status(200).send(info);
}
});
// start the app
febby.bootstrap(()=>{
console.log('app started');
})crud
Creates CRUD on given route object with specific config.
Parameters
pathstring Represents url path.configObject Represents CRUD configuration.modelObject Represents Model config object.routerObject Represents Express Router object. it is optional.
Examples
const febby = new Febby(config);
// create router
const api = febby.router('/api');
const bookApi = febby.router('/books',api);
const bookCrudConfig = {
crud: true,
middlewares:[]
};
const bookSchema = {
name: { type: String },
author:{ type: Number }
};
const bookModel = febby.model('books',bookSchema);
// creates POST method on book api
// if model already registered then use febby.model('books') to get model object
febby.crud('/', bookCrudConfig, bookModel, bookApi);models
Returns models object.
Examples
const febby = new Febby(config);
// create router
const api = febby.router('/api');
const fn = (req,res,next)=>{
// some logic or validation
next();
}
const fn2 = async (req,res,next)=>{
const db = febby.model(); // Returns db models object
const users = await db.user.find({});
// some validation logic on users
next();
}
// this middleware runs on api router
febby.middleware(fn,api);
// this middleware runs on app router
febby.middleware(fn);
febby.route({
router: api,
method: 'get',
path: '/',
middlewares: [],
handler: (req, res, next) => {
// do business
}
});
febby.bootstrap(()=>{
console.log('app started');
})Returns Object Returns mongoose models object.
model
Rigister and Returns model object.
Parameters
Examples
const febby = new Febby(config);
// create router
const api = febby.router('/api');
const fn = (req,res,next)=>{
// some logic or validation
next();
}
const fn2 = async (req,res,next)=>{
const db = febby.model(); // Returns db models object
const users = await db.user.find({});
// some validation logic on users
next();
}
// this middleware runs on api router
febby.middleware(fn,api);
// this middleware runs on app router
febby.middleware(fn);
febby.route({
router: api,
method: 'get',
path: '/:id',
middlewares: [],
handler: async (req, res, next) => {
const user = febby.Model('user'); // get registered model by name
const info = await user.findById(req.params.id);
res.status(200).send(info);
}
});
febby.bootstrap(()=>{
console.log('app started');
})bootstrap
if database "db" object specified in config then febby will try to connect database on bootstarp.
Parameters
fnFunction Represents callback function which will called after app start up.
Examples
const febby = new Febby(config);
// create router
const api = febby.router('/api');
const fn = (req,res,next)=>{
// some logic or validation
next();
}
const fn2 = async (req,res,next)=>{
const db = febby.model(); // Returns db models object
const users = await db.user.find({});
// some validation logic on users
next();
}
// this middleware runs on api router
febby.middleware(fn,api);
// this middleware runs on app router
febby.middleware(fn);
febby.route({
router: api,
method: 'get',
path: '/:id',
middlewares: [],
handler: async (req, res, next) => {
const user = febby.Model('user'); // get registered model by name
const info = await user.findById(req.params.id);
res.status(200).send(info);
}
});
// start the app
febby.bootstrap(()=>{
console.log('app started');
})expressApp
Get Express App object
Examples
febby.shutdown();shutdown
Shutdown app
Examples
febby.shutdown();closeConnection
Close database connections
Examples
febby.closeConnection();