API router wrapper for Express node.js

narcotic1998

Naren

Posted on February 10, 2022

API router wrapper for Express node.js

Hello everyone 👋, I'm Naren.

I have developed a plugin to declare express api routes in node js in a easy way.

Feel free to check it out. Any corrections in plugin is highly appreciated.

Here's the npm link and brief explanation of the plugin.

Installation

npm i @naren_codes/server-router

Getting Started



const Router = require("@naren_codes/server-router");

const API_ROUTE = {
     // API url
     path : "user",
     // API method
     method : "get",
     /* Before Enter middleware - called before calling api handler 
        If returned Promise will call next() on resolve and ends api request without calling handler on reject
        If returns nothing calls next() after beforeEnter
        @params - request object
     */
    // Optional
     beforeEnter : (req) => {
          return Promise.resolve();
     },
     /* Api Handler - should return promise 
        @params - request object
     */
     handler : (req => {
          return Promise.resolve({
               data : "Hello World", // Response data for the api request
               status : 200, // Send any HTTP statuses
               headers : {
                    // Declare any response header to be binded in the request here
                    "Content-Type" : 'application/json', // Optional by default express will evaluate Content-Type
                    "Cache-Control" : `max-age=1000`
               },
               // Declare any cookies to be set in the client's browser
               cookies : {
                    auth_token : token
               }
          });
     }),
     // Child routes based on current route
     children : [
          {
               // userId will be a Dynamic value
               path : ":userId",
               method : "get"
               // Declare handler, beforeEnter, children
          }
     ]
}

/* @params { app, options }
 * app - app object obtained by called express() middleware
 * options - params to be passed for the router
*/

new Router(app, {
     routes : [
          API_ROUTE
          // other api routes
     ],
     /* For static based compressions and serving index.html on all routes 
      * path - folder containing static files (js/css/html)
      * entry_point - for single page applications html mentioned here will sent to browser for all routes that does not match declared routes
     */
     static : {
          path : path.resolve("./server/public"),
          entry_point : "index.html"
     }
});
Enter fullscreen mode Exit fullscreen mode
💖 💪 🙅 🚩
narcotic1998
Naren

Posted on February 10, 2022

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

API router wrapper for Express node.js
javascript API router wrapper for Express node.js

February 10, 2022