npm

Check out our latest tech talk, "JavaScript Supply Chain Security" presented by VP of Security, Adam Baldwin.Watch it here »

@salomaosnff/express-router-map

1.0.0 • Public • Published

Express Router Map

Install

npm i --save @salomaosnff/express-router-map

Example

const express = require("express");
const RouterMap = require("@salomaosnff/express-router-map");
 
const app = express();
 
// Create RouterMap instance
const mainRouter = new RouterMap({
  // Set your routes here
  routes: {
    "/": (req, res) => res.send("Welcome to home!"),
    "/donate": (req, res) => res.send("Please, pay me a coffee."),
    "/error": (req, res, next) => next(new Error("Ops!"))
  },
 
  // NotFound Handler
  notFound: (req, res, next) => next(new Error("Not Found")),
 
  // Error Handler
  error: (err, req, res, next) => {
    res.send(`An error has occurred: ${err.message}`);
  }
});
 
// Transforms to Express Router
app.use(mainRouter.toRouter());
 
app.listen(8080, () => console.log("Server is running..."));

Methods and Middleware stack

new RouterMap({
  routes: {
    "/users": {
      GET: UsersController.listAll,
      POST: [checkAuth(), UsersController.create] // Use an array to define a stack of middlewares to execute!
    },
    "/users/:id": {
      GET: UsersController.getOne,
      PUT: [checkAuth(), UsersController.updateOne],
      DELETE: [checkAuth(), UsersController.removeOne]
    }
  }
});

Rest API Example

// products.js
module.exports = new RouterMap({
  routes: {
    "/": {
      GET: (req, res) => res.send("List All Products"),
      POST: (req, res) => res.send("Product Created!"),
      ALL: (req, res) => res.send("Method Not Allowed!")
    },
    "/:id": {
      GET: (req, res) => res.send("Show Product details"),
      PUT: (req, res) => res.send("Product Updated!"),
      DELETE: (req, res) => res.send("Product Removed!"),
      ALL: (req, res) => res.send("Method Not Allowed!")
    }
  }
});
// api.js
module.exports = new RouterMap({
  routes: {
    "/": (req, res) => res.send("Explore the API!")
  },
  // Set API Entrypoints here
  use: {
    "/products": productsMap
  },
  notFound: (req, res, next) => next(new Error("Entrypoint not Found."))
});
// router.js
const apiMap = require("./api");
 
module.exports = new RouterMap({
  // Set pages here
  routes: {
    "/": (req, res) => res.send("Website Homepage")
  },
 
  // Set sub-applications here
  use: {
    "/api": apiMap
  }
});

install

npm i @salomaosnff/express-router-map

Downloadsweekly downloads

5

version

1.0.0

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability