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"
  • 相关阅读:
    java9新特性-9-语法改进:try语句
    10.04 FZSZ模拟Day1 总结
    10.03模拟总结
    HNOI2012 永无乡
    ZJOI2007 报表统计
    HNOI2004 宠物收养场
    HNOI2002 营业额统计
    Splay 区间反转
    Splay基本操作
    HEOI2016 树
  • 原文地址:https://www.cnblogs.com/myzy/p/6543414.html
Copyright © 2011-2022 走看看