better-routes
v1.0.3
Published
simple node.js module for more structured express routes
Downloads
3
Readme
better-routes
simple node.js module for more structured express routes.
This simple module provides laravel-like routing syntax to node.js applications.
Installation
$ npm install better-routes
API
const Route = require("better-routes");
Route.group(options = {}, callback)
Creates a group of routes. Returns Router object.
options
The group
function takes an optional options
object that may contain any of
the following keys:
prefix
should be passed as a string
. prefix
will be prepended to all the route urls of this group. Default value is empty
string.
middlewares
should be passed as an array
of middleware functions. All routes from this group will use these middlewares. Default value is empty
array.
callback
This function
will contain all the route calls and other route groups.
Route.get(path, callback), Route.post(path, callback)
Creates a GET/POST
route and returns Router.
path
should be passed as a string
. This is the path to this route.
callback
the function
that will be called if the path is visited.
Route.with(middlewares), Route.without(middlewares)
creates a route with/without certain middlewares changing the behaviour of group middlewares.
middlewares
should be passed as an array
of middleware functions.
Usage
const express = require("express");
const Route = require("better-routes");
const app = express();
const router = Route.group({ middlewares: [middleware1, middleware2] }, () => {
Route.with([middleware3])
.without([middleware2])
.get("/routeA", async (req, res) => {
res.send("This is a GET route with middleware1 and middleware3.");
});
Route.get("/routeB", async (req, res) => {
res.send("This is a GET route with middleware1 and middleware2.");
});
Route.without([middleware2]).post("/routeC", async (req, res) => {
res.send("This is a POST route with middleware1.");
});
Route.post("/routeD", async (req, res) => {
res.send("This is a POST route with middleware1 and middleware2.");
});
});
app.use("/", router);