hapi-auto-route is a hapi plugin that lets you load route objects automatically by specifying the root directory/directories containing the routes. And allow routes path to be prefixed.
Maintainer: Sitraka Ratsimba
For Hapi >= v17
:
npm i -S hapi-auto-route
For Hapi v16.x.x
:
npm i -S hapi-auto-route@1.1.0
Suppose your directory looks like this:
node_modules/
routes/
home.js
server.js
package.json
// routes/home.js
'use strict';
module.exports = {
method: 'GET',
path: '/',
handler: (request, h) => 'Hello'
};
// server.js
'use strict';
const Path = require('path');
const Hapi = require('@hapi/hapi');
const server = Hapi.Server({
port: 3000,
host: 'localhost'
});
const init = async () => {
await server.register({
plugin: require('hapi-auto-route'),
options: {
routes_dir: Path.join(__dirname, 'routes')
}
});
await server.start();
console.log(`Server is running at: ${server.info.uri}`);
};
process.on('unhandledRejection', (error) => {
console.log(error);
process.exit();
});
init();
Now, you can start the server and see Hello
at http://localhost:3000
.
You can also provide an array of absolute paths if you want to auto-import from multiple base directories.
routes_dir
: absolute path(s) to routes directory/directories.required
pattern
: glob pattern used to find route files. Defaults to**/!(_)*.js
.use_prefix
: Use directory tree as prefix. Defaults tofalse
.
If you find a bug in the source code or a mistake in the documentation, you can help us by submitting an issue or a pull request with a fix.
This project is licensed under the MIT License - see the LICENSE file for details.