3.3.1 • Published 8 years ago
plover-router v3.3.1
plover-router
为Plover应用提供Restful形式API。
使用
在config/routes.js配置路由规则。
module.exports = ({ resources, get, post, use }) => {
  get('/', 'home#index');
  get('/patients/:id', 'patients#show');
  post('/products', 'products#create');
  resources('photos');
  use('/admin', require('../lib/middleware/admin'));
};resources
resources('photos');按约定会生成以下7个路由规则:
| HTTP Verb | Path | Module#Action | Used For | 
|---|---|---|---|
| GET | /photos | photos#index | display a list of all photos | 
| GET | /photos/new | photos#new | return an HTML form for creating a new photo | 
| POST | /photos | photos#create | create a new photo | 
| GET | /photos/:id | photos#show | display a specific photo | 
| GET | /photos/:id/edit | photos#edit | return an HTML form for editing a photo | 
| PATCH/PUT | /photos/:id | photos#update | update a specific photo | 
| DELETE | /photos/:id | photos#delete | delete a specific photo | 
指定需要的action:
resources('photos', { only: ['index', 'new', 'create'] })显示配置路由
get('/profile', { module: 'users', action: 'show' })namespace
namespace('admin', () => {
  resources('articles');
});Nested Resources
resources('magazines', () => {
  resources('ads');
});会生成如下路由规则:
GET      /magazines/1/ads
GET      /magazines/1/ads/new
POST     /magazines/1/ads
GET      /magazines/1/ads/2
GET      /magazines/1/ads/2/edit
PATH/PUT /magazines/1/ads/2
DELETE   /magazines/1/ads/2API
{
  get(match, to);
  post(match, to);
  put(match, to);
  patch(match, to);
  delete(match, to);
  resource(name, { only }, [block]);
  namespace(name, block);
  use(match, middleware);
}match
使用path-to-regexp解析。
to
有两种格式指定action
get('/profile', 'users#edit');get('/profile', { module: 'users', action: 'edit' });第二种还可以指定更多参数:
get(match, { module: {String}, action: {String}, query: {Object} });