npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@febbyjs/febby

v0.2.8

Published

microservice framework for building application services

Readme

Table of Contents

Febby

Febby

Parameters

  • config Object 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

  • routeConfig Object 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

  • routes Array 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

  • middleware Function Represents middleware function.
  • router Object 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

  • middlewares Array<Object> Represents list of middlewares.
  • router Object 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

  • url string Represents url.
  • router Object Represents Express Router object, default to app router object.
  • options Object 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

  • url string Represents database url.
  • options Object Represents mongoose connect optional object.

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

  • path string Represents url path.
  • config Object Represents CRUD configuration.
  • model Object Represents Model config object.
  • router Object 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

  • name string Represents name of model.
  • schema Object Represents mongoose schema 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: '/: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

  • fn Function 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();