Plugin for adding routes support to your `base` application. Requires templates support to work.
npm install base-routes> Plugin for adding routes support to your base application. Requires templates support to work.
_(TOC generated by verb using markdown-toc)_
Install with npm:
``sh`
$ npm install --save base-routes
Register the plugin with your base application.
`js
var routes = require('base-routes');
var Base = require('base-app');
var app = new Base();
app.use(routes());
`
The Router and Route classes are on the app instance, in case they need to be accessed directly.
Example
`js`
var router = new app.Router();
var route = new app.Route();
Handle middleware method for the given file.
Params
* methodName {String}: Name of the router method to handle.file
* {Object}: View objectnext
* {Function}: Callback functionreturns
* {undefined}
Example
`js`
app.handle('methodName', file, next);
Run the given middleware handler only if the file has not already been handled by method.
Params
* method {Object}: The name of the handler method to call.file
* {Object}returns
* {undefined}
Example
`js`
app.handleOnce(method, file, callback);
// example
app.handleOnce('onLoad', file, callback);
Create a new Route for the given path. Each route contains a separate middleware stack. See the en-route API documentation for details on adding handlers and middleware to routes.
Params
* path {String}returns
* {Object}: Returns the instance for chaining.
Example
`js
app.create('posts');
app.route(/blog/)
.all(function(file, next) {
// do something with file
next();
});
app.post('whatever', {path: 'blog/foo.bar', content: 'bar baz'});
`
Add callback triggers to route parameters, where name is the name of the parameter and fn is the callback function.
Params
* name {String}fn
* {Function}returns
* {Object}: Returns the instance for chaining.
Example
`js
app.param('title', function(view, next, title) {
//=> title === 'foo.js'
next();
});
app.onLoad('/blog/:title', function(view, next) {
//=> view.path === '/blog/foo.js'
next();
});
`
Special route method that works just like the router.METHOD() methods, except that it matches all verbs.
Params
* path {String}callback
* {Function}returns
* {Object} this: for chaining
Example
`js`
app.all(/\.hbs$/, function(view, next) {
// do stuff to view
next();
});
Add a router handler method to the instance. Interchangeable with the handlers method.
Params
* method {String}: Name of the handler method to define.returns
* {Object}: Returns the instance for chaining
Example
`js`
app.handler('onFoo');
// or
app.handler(['onFoo', 'onBar']);
Add one or more router handler methods to the instance.
Params
* methods {Array|String}: One or more method names to define.returns
* {Object}: Returns the instance for chaining
Example
`js`
app.handlers(['onFoo', 'onBar', 'onBaz']);
// or
app.handlers('onFoo');
You might also be interested in these projects:
* base: Framework for rapidly creating high quality node.js applications, using plugins like building blocks | homepage
* en-route: Routing for static site generators, build systems and task runners, heavily based on express.js routes… more | homepage
* gulp-routes: Add middleware to run for specified routes in your gulp pipeline. | homepage
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
_(This project's readme.md is generated by verb, please don't edit the readme directly. Any changes to the readme must be made in the .verb.md readme template.)_
To generate the readme, run the following command:
`sh`
$ npm install -g verbose/verb#dev verb-generate-readme && verb
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
`sh``
$ npm install && npm test
Jon Schlinkert
* github/jonschlinkert
* twitter/jonschlinkert
Copyright © 2017, Jon Schlinkert.
Released under the MIT License.
*
_This file was generated by verb-generate-readme, v0.6.0, on August 07, 2017._