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" } });
Top comments (0)