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');
  });
相关文章
|
8月前
3.Electron之remote,打开新窗体
3.Electron之remote,打开新窗体
253 1
|
9月前
|
API CDN
Electron Markdown编辑器实战:资源管理器实现
Electron Markdown编辑器实战:资源管理器实现
|
存储 Web App开发 JavaScript
从零开始开发图床工具:使用 Gitee 和 Electron 实现上传、管理和分享(上)
从零开始开发图床工具:使用 Gitee 和 Electron 实现上传、管理和分享(上)
272 0
|
9月前
|
前端开发 API CDN
Electron实现你自己的Markdown编辑软件
Electron实现你自己的Markdown编辑软件
|
前端开发 算法 JavaScript
从零开始开发图床工具:使用 Gitee 和 Electron 实现上传、管理和分享(下)
从零开始开发图床工具:使用 Gitee 和 Electron 实现上传、管理和分享(下)
249 0
|
JavaScript 前端开发
使用vue3+TypeScript手动封装tabs组件
使用vue3+TypeScript手动封装tabs组件
353 0
|
JSON 移动开发 前端开发
使用 React-DnD 打造简易低代码平台
前言 2016年起,低代码概念开始在国内兴起,当年该行业总共有 10 起融资事件,之后低代码行业融资笔数整体呈上升趋势,并在2020年增长至14起,其中亿元以上融资有13起。
2088 0
使用 React-DnD 打造简易低代码平台
|
JSON 前端开发 JavaScript
规范(三):从 0 搭建 React+TS 项目
规范(三):从 0 搭建 React+TS 项目
规范(三):从 0 搭建 React+TS 项目
|
9月前
|
机器学习/深度学习 自然语言处理 机器人
【Tensorflow+自然语言处理+LSTM】搭建智能聊天客服机器人实战(附源码、数据集和演示 超详细)
【Tensorflow+自然语言处理+LSTM】搭建智能聊天客服机器人实战(附源码、数据集和演示 超详细)
850 10
|
9月前
|
前端开发 测试技术 数据库
网上订餐系统的设计与实现(论文+源码)_kaic
网上订餐系统的设计与实现(论文+源码)_kaic

热门文章

最新文章