zoukankan      html  css  js  c++  java
  • KOA 学习(七) 路由koa-router

    一、基本用法

    var app = require('koa')();
    var router = require('koa-router')();
    
    router.get('/', function *(next) {...});
    
    app
      .use(router.routes())
      .use(router.allowedMethods());

    二、router.get|put|post|patch|delete

    router
      .get('/', function *(next) {
        this.body = 'Hello World!';
      })
      .post('/users', function *(next) {
        // ...
      })
      .put('/users/:id', function *(next) {
        // ...
      })
      .del('/users/:id', function *(next) {
        // ...
      });

    三、多个中间件例子

    router.get(
      '/users/:id',
      function *(next) {
        this.user = yield User.findOne(this.params.id);
        yield next;
      },
      function *(next) {
        console.log(this.user);
        // => { id: 17, name: "Alex" }
      }
    );

    四、嵌套路径

    var forums = new Router();
    var posts = new Router();
    
    posts.get('/', function *(next) {...});
    posts.get('/:pid', function *(next) {...});
    forums.use('/forums/:fid/posts', posts.routes(), posts.allowedMethods());
    
    // responds to "/forums/123/posts" and "/forums/123/posts/123"
    app.use(forums.routes());

    五、路由前缀

    var router = new Router({
      prefix: '/users'
    });
    
    router.get('/', ...); // responds to "/users"
    router.get('/:id', ...); // responds to "/users/:id"

    六、重定向

    router.redirect('/login', 'sign-in');

    还有另外一种写法

    router.all('/login', function *() {
      this.redirect('/sign-in');
      this.status = 301;
    });

    七、router.url(name, params)

    router.get('user', '/users/:id', function *(next) {
     // ...
    });
    
    router.url('user', 3);
    // => "/users/3"
    
    router.url('user', { id: 3 });
    // => "/users/3"
  • 相关阅读:
    ubuntu 14.04 安装python包psycopg2
    vmare 往 virtualbox迁移
    docker-compose & docker 镜像/加速
    nodejs & npm & gulp 安装和配置
    airflow 优化
    airflow 部署
    windows 上vmare超卡的问题解决方案
    HDU 6781 Solo (贪心 + 优先队列)
    HDU 6779 Drink (最小费用流)
    HDU 6778 Car (状压DP)
  • 原文地址:https://www.cnblogs.com/myzy/p/6543414.html
Copyright © 2011-2022 走看看