hapi-router
Route loader for hapi.
Hapi v17
hapi-router
requires Hapi v18.
- Hapi 18 and 19, hapi-router@5
- Hapi 17, hapi-router@4
- Hapi <= 16, hapi-router@3
Install
// If you're using Hapi v18 or v19
$ npm i -S hapi-router@5
// If you're using Hapi v17
$ npm i -S hapi-router@4
// If you're using < Hapi v17
$ npm i -S hapi-router@3.5.0
Usage
try {
await server.register({
plugin: require('hapi-router'),
options: {
routes: 'src/**/*Route.js'
}
})
} catch (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:
module.exports = [
{
path: '/test1',
method: 'GET',
handler: function (request, reply) {
reply('hello');
}
},
{
path: '/test2',
method: 'GET',
handler: function (request, reply) {
reply('hello');
}
}
]
Glob Primer
Example globs:
'routes/*.js'
'routes/**/*.js'
'**/*Route.js'
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.