koa2入门--02.koa2路由
首先输入在项目文件下使用cmd,输入 npm install koa-router --save
const koa = require('koa');//引入koa
const Router = require('koa-router');
//配置路由 ,ctx 上下文context ,包含了request和response等信息
var router = new Router();
router.get('/',async (ctx)=>{
ctx.body = '首页'; //相当于 res.writeHead(); res.end();
}).get('/news',async (ctx)=>{
ctx.body = '这是一个新闻页面';
});
const app = new koa();//实例化koa
app.use(router.routes()); //启动路由
app.use(router.allowedMethods());//官方配置
另一种便捷写法
const koa = require('koa');
var router = require('koa-router')();
var app = new koa();
router.get('/',async (ctx)=>{
ctx.body = '首页';
});
router.get('/news',async (ctx)=>{
ctx.body = '新闻列表页面';
});
router.get('/newscontent',async(ctx)=>{
ctx.body = '新闻详情';
});
app.use(router.routes());//启动路由
app.use(router.allowedMethods());//官方配置,请求错误的时候返回一个状态
app.listen(3000);
获取get传值
const koa = require('koa');
var router = require('koa-router')();
var app = new koa();
router.get('/',async (ctx)=>{
ctx.body = '首页';
});
router.get('/news',async (ctx)=>{
ctx.body = '新闻列表页面';
});
//获取get传值
router.get('/newscontent',async(ctx)=>{
//从ctx中读取get值
console.log(ctx.query); //获取的是格式化的对象,例{id:'123'}
console.log(ctx.querystring); //获取的是url的字符串 ,例:'id=123'
console.log(ctx.request); //获取请求相关的信息,包括method,url,header等信息
ctx.body = '新闻详情';
});
app.use(router.routes());//启动路由
app.use(router.allowedMethods());//官方配置,请求错误的时候返回一个状态
app.listen(3000);
动态路由
const koa = require('koa');
var router = require('koa-router')();
var app = new koa();
router.get('/',async(ctx)=>{
ctx.body = '首页';
});
//动态路由
router.get('/news/:params',async(ctx)=>{
//aid 为自定义参数名,可以通过ctx.params访问
//如果有多个动态传值,则可以写成 '/news/:params1/:params2'的形式
ctx.body = ctx.params;
});
app.use(router.routes());
app.use(router.allowedMethods());
app.listen(3000);
koa2入门--02.koa2路由的更多相关文章
- 快速入门系列--MVC--02路由
现在补上URL路由的学习,至于蒋老师自建的MVC小引擎和相关案例就放在论文提交后再实践咯.通过ASP.NET的路由系统,可以完成请求URL与物理文件的分离,其优点是:灵活性.可读性.SEO优化.接下来 ...
- 【网络爬虫入门02】HTTP客户端库Requests的基本原理与基础应用
[网络爬虫入门02]HTTP客户端库Requests的基本原理与基础应用 广东职业技术学院 欧浩源 1.引言 实现网络爬虫的第一步就是要建立网络连接并向服务器或网页等网络资源发起请求.urllib是 ...
- CSS3基础入门02
CSS3 基础入门02 边框相关属性 border-radius 通过这个属性我们可以设置边框圆角,即可以将四个角设置为统一的圆角,也可以单独的设置具体的某一个角的圆角. grammer: borde ...
- Django 02 url路由配置及渲染方式
Django 02 url路由配置及渲染方式 一.URL #URL #(Uniform Resoure Locator) 统一资源定位符:对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是 ...
- JavaScript基本入门02
目录 JavaScript基础入门 02 条件语句 if 语句 if .. else 语句 switch 结构 循环语句 while 循环 continue 关键字 do...while语句 for ...
- Shell入门02
Shell入门-02 1.重定向 标准输入(<) 标准输出 标准错误重回定向 程序 = 指令 + 数据 命令 变量 在程序中,数据如何输入?又如何输出? 数据输入:键盘 – 标准输入,但是并 ...
- # 095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 03 封装总结 01 封装知识点总结
095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 04 static关键字(续)
094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 03 static关键字(下)
093 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
随机推荐
- PHPCMS快速建站系列之在线留言
有两种方法 第一种方法: 利用留言板插件,在后台模板中,安装留言板插件使用,这里先不展开. 第二种方法: 表单向导的适用场合: 如果一个前台页面只是为了提交表单数据,那么就非常适合适用表单向导的功能, ...
- PLAY2.6-SCALA(三) 数据的返回与保存
1.修改默认的Content-Type 自动设置内容类型为text/plain val textResult = Ok("Hello World!") 自动设置内容类型为appli ...
- JavaScript —— 给函数参数设置默认值
一.ES5 function fn(x, y){ y = y || 20; console.log(x, y); } fn(); // undefined 20 fn(5); // 5 20 fn(5 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第四章:Direct 3D初始化
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第四章:Direct 3D初始化 学习目标 对Direct 3D编程在 ...
- html+js 在页面同步服务器时间
将以下的代码 放置html页面中! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- sql —— having
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用.HAVING 子句可以让我们筛选分组后的各组数据. 原表: 我们可以对上面数据根据性别这个字段进行分组查询,分别 ...
- Javascript 用来验证电话号码的正则
Javascript 用来验证电话号码的正则 在学习 Javascript 时学习到的. function telephoneCheck(str) { // return /^(1\s?)?(\d{3 ...
- iOS如何才能在招聘中表现得靠谱?
http://www.cocoachina.com/programmer/20150707/12414.html 近一年内陆续面试了不少人了,从面试者到面试官的转变让我对 iOS 招聘有了更多的感受. ...
- @codechef - RNG@ Random Number Generator
目录 @description@ @solution@ @part - 1@ @part - 2@ @part - 3@ @accepted code@ @details@ @description@ ...
- iptables智能DNS
1. echo 1 > /proc/sys/net/ipv4/ip_forward 2. 在NAT服务器上添加以下规则: 在PREROUTING链中添加目的地址转换规则: iptables -t ...