route-hasher

0.0.4 • Public • Published

route-hasher

NPM version

Middleware for express or connect that redirects requests to the root path / with url.pathname written into url.hash.

Useful for single page apps with a client-side router e.g. Angular. Since the server is unaware of UI routes outside of /, a direct request to a specific pathname such as /users/hiebj or /account/orders causes a naïve server to respond with 404 Not Found. This middleware instead responds with 302 Found, redirecting such a request to the root path with the route information stored in the URL's hash component:

GET /users/hiebj  
-> 302 Found /#/users/hiebj  
GET /account/orders  
-> 302 Found /#/account/orders  
GET /search?param1=val1&param2=val2  
-> 302 Found /#/search?param1=val1&param2=val2

This way, the route information is handed off to the client-side router, which can use it to render the appropriate view.

Usage

const express = require('express'),  
  hasher = require('route-hasher');  
 
express()  
  .use(hasher('!'))  
  .use(express.static('.'))  
  .listen(8080);

Options

hashPrefix

string
A string to prepend to url.pathname before writing it into url.hash. For example, if '!' is used (as in the example), a request to /users/hiebj is redirected to /#!/users/hiebj.

Package Sidebar

Install

npm i route-hasher

Weekly Downloads

1

Version

0.0.4

License

MIT

Last publish

Collaborators

  • hiebj