Grand Central Junction
A simple Rails-inspired router for Node built on top of Express.
Documentation
route(app, options)
Options that can be specified:
dir
-- the home directory of the app. Defaults to the directory that contains thenode_modules
folderroutes
-- the routes path, relative to the directory route() is called from. Defaults toconfig/routes
controllers
-- the controllers path. Defaults tocontrollers
In your app.js
file or wherever you initialize your Express app, add the following code:
var express = gcj = app = ; gcj;
With custom options:
gcj;
Routes.js
Example of /config/routes.js:
var oauth = ; ;;;;; ;
Routes:
GET / => /controllers/home.js#index
GET /user/:id => /controllers/user.js#get
POST /user => /controllers/user.js#create
PUT /user/:id => /controllers/user.js#update
DELETE /user/:id => /oauth.js#requireAuth >> /controllers/user.js#remove
GET /animal => /controllers/animal.js#index
GET /animal/:id => /controllers/animal.js#show
POST /animal => /controllers/animal.js#create
PUT /animal/:id => /controllers/animal.js#update
DELETE /animal/:id => /controllers/animal.js#destroy
GET /animal/create => /controllers/animal.js#create
GET /animal/edit/:id => /controllers/animal.js#update
GET /animal/delete/:id => /controllers/animal.js#destroy
match(route, action, [options])
A GET
route to the specified controller/action.
- route
string
regex
-- the Express routing string/RegEx - action
string
function
-- either a direct callback withreq, res
params or a string in the format of'controller#action'
, with controller being the name of the file in the controllers directory and action being the name of the method in the controller. - [options]
object
via
changes the method of the route:get
(default),post
,put
,delete
method
same asvia
VERB(route, [action...], action)
Same as match() options above, but without options and the ability to include many actions. VERB = get
|post
|put
|del
|all
resources(route, [controller])
Maps all HTTP methods to their respective CRUD actions in a controller. The action names are the same as those in Rails with a few extras added in (see above list of routes for names).
- route
string
regex
-- the Express routing string/RegEx - controller
string
-- the name of the file in the controllers directory, so'project'
would be the name of./controllers/project.js
. This defaults to whatever name is in theroute
string.