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.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.