• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

alexmingoia/koa-resource-router: RESTful rails-style resource routing for koa

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

alexmingoia/koa-resource-router

开源软件地址:

https://github.com/alexmingoia/koa-resource-router

开源编程语言:

JavaScript 100.0%

开源软件介绍:

koa-resource-router

Build Status Dependency Status NPM version

RESTful resource routing for koa.

  • Rails-like REST resource routing.
  • Use multiple middleware for resource actions.
  • Responds to OPTIONS requests with allowed methods.
  • Returns 405 Method Not Allowed when applicable.

Installation

Install using npm:

npm install koa-resource-router

API

new Resource(path, actions, options)

var Resource = require('koa-resource-router');
var app = require('koa')();

var users = new Resource('users', {
  // GET /users
  index: function *(next) {
  },
  // GET /users/new
  new: function *(next) {
  },
  // POST /users
  create: function *(next) {
  },
  // GET /users/:id
  show: function *(next) {
  },
  // GET /users/:id/edit
  edit: function *(next) {
  },
  // PUT /users/:id
  update: function *(next) {
  },
  // DELETE /users/:id
  destroy: function *(next) {
  }
});

app.use(users.middleware());

Action mapping

Actions are then mapped accordingly:

GET     /users             ->  index
GET     /users/new         ->  new
POST    /users             ->  create
GET     /users/:user       ->  show
GET     /users/:user/edit  ->  edit
PUT     /users/:user       ->  update
DELETE  /users/:user       ->  destroy

Overriding action mapping

var users = new Resource('users', actions, {
  methods: {
    update: 'PATCH'
  }
});

Top-level resource

Omit the resource name to specify a top-level resource:

var root = new Resource(require('./frontpage'));

Top-level controller actions are mapped as follows:

GET     /          ->  index
GET     /new       ->  new
POST    /          ->  create
GET     /:id       ->  show
GET     /:id/edit  ->  edit
PUT     /:id       ->  update
DELETE  /:id       ->  destroy

Nesting

Resources can be nested using resource.add():

var forums = new Resource('forums', require('./forum'));
var threads = new Resource('threads', require('./threads'));

forums.add(threads);

Multiple middleware

Run middleware before resource actions by passing middleware functions before your actions:

var users = new Resource('users', authorize, actions);

Run middleware for specific actions by passing an array:

var users = new Resource('users', {
  show: [authorize, function *(next) {
    // ...
  }]
});

MIT Licensed




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap