GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - ilearnio/grapnel-plus: Additional features for Grapnel router

BranchesTags
Open more actions menu

Latest commit

 

History

3 Commits
3 Commits

Folders and files

NameName
Last commit message
Last commit date
test
test
 
 
.gitignore
.gitignore
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
package.json
package.json
 
 
router-client.js
router-client.js
 
 
router-server.js
router-server.js
 
 
router.js
router.js
 
 

Repository files navigation

grapnel-plus

A wrapper around Grapnel router that extends it's functionality by adding few more features to it. It depends on a fork of Grapnel with just a few minor fixes such as support for multiple instances of router and other useful stuff.

Installation

npm i -S grapnel-plus

Usage

//
// CLIENT
//
var Router = require('grapnel-plus/router-client')
var router = new Router({ pushState: true })

router.page('/url', 'component-name')


//
// SERVER
//
var Router = require('grapnel-plus/router-server')
var router = new Router()

router.page('/url', 'component-name')

express.use(router.middleware())

New method page for nicely registering pages (GET routes)

Registers a new page by a given path, component name to render and optional middlewares.

Arguments:

  • path - path of a route
  • page - name of the page which should point to a file (optional)
  • routeName - a name of a route. If skipped will be generated automatically by the path parameter (optional)
  • ...middlewares - Express-compatible middlewares (one or more) that will be executed one after another (optional)
router.page('/path', 'component-name', 'optional-route-name', ...optionalMiddlewares)

New method use

Register middlewares that will be triggered before your routes. This allows you to update/log req and res objects before passing them further down to your routes or stop requests from going any further.

router.use((req, res, next) => { ... })
router.use((req, res, next) => { ... }, (req, res, next) => { ... })
router.use(
  (req, res, next) => { ... },
  // passing array of middewares is also allowed
  [ (req, res, next) => { ... }, (req, res, next) => { ... } ]
)

Groups

Wrap your routs into groups. This allows to attach middlewares to entire groups of routes rather than repeat them to a set of routes.

// Global routes
router.page('/path', 'component-name')

// Group of routes
router.group('/admin', function () {
  // Middlewares
  this.use(isUserAdmin())
  this.use((req, res, next) => { ... }, (req, res, next) => { ... })
  this.use(arrayOfMiddlewares)

  // Routes within a group
  this.page('/payments', 'payments-component', isSuperAdmin()) // for super admins only
})

Other properties/methods

  • routes - an array of registered routes as well as groups
  • getRoute(name) - get route by name
  • getRouteBy(by, value) - get route by "path", "page", or "name"

About

Additional features for Grapnel router

Resources

Readme
Activity

Stars

2 stars

Watchers

1 watching

Forks

0 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.