koa框架学习记录(6)-阿里云开发者社区

开发者社区> 快乐的嘟嘟> 正文

koa框架学习记录(6)

简介: 一个前端学习koa的简单记录
+关注继续查看

Koa-router中间件(1)
安装koa-router中间件 npm install --save koa-router

const Koa = require('koa');
const Router = require('koa-router');

const app = new Koa();
const router = new Router();

router.get('/', function (ctx, next) {
    ctx.body="Hello JSPang";
});

app
  .use(router.routes())
  .use(router.allowedMethods());
  app.listen(3000,()=>{
      console.log('starting at port 3000');
  });

//多页面配置
//其实多页面的添加只要继续在下面填写get或者Post就可以了,比如我们再加一个todo的页面。
const Koa = require('koa');
const Router = require('koa-router');

const app = new Koa();
const router = new Router();

router.get('/', function (ctx, next) {
    ctx.body="Hello JSPang";
})
.get('/todo',(ctx,next)=>{
    ctx.body="Todo page"
});

app
  .use(router.routes())
  .use(router.allowedMethods());
  app.listen(3000,()=>{
      console.log('starting at port 3000');
  });

Koa-router中间件(2)层级
设置前缀
路由在创建的时候是可以指定一个前缀的,这个前缀会被至于路由的最顶层,也就是说,这个路由的所有请求都是相对于这个前缀的。
const router = new Router({
      prefix:'/js'
})
写上这句代码,这时候你的访问路径就加了一个层级js
路由层级
设置前缀一般都是全局的,并不能实现路由的层级,如果你想为单个页面设置层级,也是很简单的。只要在use时使用路径就可以了。
例如这种写法装载路由层级,这里的router相当于父级:router.use('/page', page.routes(), page.allowedMethods())。通过这种写法的好处是并不是全局的,我们可以给不同的路由加层级。


const Koa = require('koa');
const app = new Koa();
const Router = require('koa-router');


let home = new Router();
home.get('/jspang',async(ctx)=>{
    ctx.body="Home JSPang";
}).get('/todo',async(ctx)=>{
    ctx.body ='Home ToDo';
})




let page = new Router();
page.get('/jspang',async(ctx)=>{
    ctx.body="Page JSPang";
}).get('/todo',async(ctx)=>{
    ctx.body ='Page ToDo';
})

//装载所有子路由
let router = new Router();
router.use('/home',home.routes(),home.allowedMethods());
router.use('/page',page.routes(),page.allowedMethods());

//加载路由中间件
app.use(router.routes()).use(router.allowedMethods());

app.listen(3000,()=>{
    console.log('[demo] server is starting at port 3000');
});

声明了两个路由,第一个是home,第二个是page.然后通过use赋予不同的前层级。

Koa-router中间件(3)参数

const Koa = require('koa');
const Router = require('koa-router');
const app = new Koa();
const router = new Router();
router.get('/', function (ctx, next) {//参数在ctx上下文中
    ctx.body=ctx.query;
});
app
  .use(router.routes())
  .use(router.allowedMethods());
  app.listen(3000,()=>{
      console.log('starting at port 3000');
  });

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
网络安全与机器学习(二):网络安全任务如何结合机器学习?
网络安全遇见机器学习,会摩擦出怎样的火花呢?
1967 0
FF ASIO 异步消息网络框架
在前边http://www.cnblogs.com/zhiranok/archive/2011/12/12/boost_asio.html 我提到,针对前面使用boost asio 中遇到的问题,对asio进行封装,如下几个目标: 1. 创建socket、acceptor不再自己构造io_service,由于asio中的对象均要保存io_service的引用,   若要手动构造,必须保证io_service晚于所有的asio对象(如socket、acceptor)释放,但是往往socket被逻辑层保存在某个内存深处,任意一个socket晚于    io_service释放,将会引起崩溃。
662 0
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
6402 0
快速上手Spring WebFlux框架
本文主要介绍基于SpringBoot如何快速上手使用SpringFlux框架开发WEB网站。 Spring 5.0在原有的Spring MVC Stack(又称Servlet Stack)以外,又引入了新的WEB开发技术栈——Spring Flux Stack(又称Reactive Stack),以满足不同的应用程序及开发团队的需求。
7537 0
算法学习之路|打印沙漏
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印
1189 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
7623 0
算法学习之路|数字黑洞
给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。
966 0
网络安全与机器学习(一):网络安全中的机器学习算法
网络安全遇见机器学习,会摩擦出怎样的火花呢?
2887 0
+关注
32
文章
115
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载