hapi-router
Route loader for hapi.
Hapi v17
hapi-router
requires Hapi v17. If you're using a previous version of Hapi, use hapi-router@3.5.0
Install
// If you're using Hapi v17$ npm i -S hapi-router // If you're using < Hapi v17$ npm i -S hapi-router@3.5.0
Usage
try await server catch err // Handle err throw err
Options
routes
Required
Type: string
/ array
The glob pattern you would like to include
ignore
Type: string
/ array
The pattern or an array of patterns to exclude
cwd
Type: string
The current working directory in which to search (defaults to process.cwd()
)
Specifying Routes
Any files that match your routes glob will be loaded
Example route file:
moduleexports = path: '/test1' method: 'GET' { ; } path: '/test2' method: 'GET' { ; }
Glob Primer
Example globs:
'routes/*.js' // match all js files in the routes directory'routes/**/*.js' // recursively match all js files in the routes directory'**/*Route.js' // match all js files that end with 'Route'
From isaacs:
"Globs" are the patterns you type when you do stuff like ls *.js
on
the command line, or put build/*
in a .gitignore
file.
The following characters have special magic meaning when used in a path portion:
*
Matches 0 or more characters in a single path portion?
Matches 1 character[...]
Matches a range of characters, similar to a RegExp range. If the first character of the range is!
or^
then it matches any character not in the range.!(pattern|pattern|pattern)
Matches anything that does not match any of the patterns provided.?(pattern|pattern|pattern)
Matches zero or one occurrence of the patterns provided.+(pattern|pattern|pattern)
Matches one or more occurrences of the patterns provided.*(a|b|c)
Matches zero or more occurrences of the patterns provided@(pattern|pat*|pat?erN)
Matches exactly one of the patterns provided**
If a "globstar" is alone in a path portion, then it matches zero or more directories and subdirectories searching for matches. It does not crawl symlinked directories.