美文网首页
koa框架学习 1

koa框架学习 1

作者: Yytg | 来源:发表于2018-01-21 15:08 被阅读186次

Koa ----基于Node.js平台的下一代web开发框架(官网是这么说的)。

1. 架设HTTP服务

const Koa = require('koa');
let server = new Koa();
server.listen(8080);

像这样,一个最简单的HTTP服务就搭建成功了。

2. 静态资源的处理
静态资源的处理依赖中间件koa-static来完成

const Koa = require('koa');
const static = require('koa-static');
let server = new Koa();
server.listen(8080);
server.use(static('www'));

输入127.0.0.1:8080/images/...这样静态资源的处理就完成了,读取的是www下的资源.

3. 路由
原生路由ctx.request.path的方式不方便,所以还是使用中间件,koa-router,koa-route,都可以实现路由,但有区别。
koa-router适合大型项目,但使用稍微复杂,koa-route适合做小东西,使用简单。
koa-router:

const Koa = require('koa');
const router = require('koa-router');
let server = new Koa();
let r1 = router();
r1.get('/',async(ctx,next)=>{
  ...
  });
server.use(r1.routes);
server.listen(8080);

koa是强依赖router的,它没有像express那样的get,post,use方法。
ctx是上下文的意思,指的是一次HTTP请求和HTTP回复
如果想向外面响应东西,可以ctx.response.body=xxx.对应的当然也有ctx.request.
获取路由参数使用ctx.params,获取get请求数据的参数使用ctx.request.query

const Koa = require('koa');
const router = require('koa-router');
const static = require('koa-static');
let server = new Koa();
server.listen(8080);
let r1 = router();
server.use(r1.routes());
//r1.get('/about/:user/:pass',async (ctx,next)=>{ // 路由参数
r1.get('/login',async (ctx,next)=>{
  ctx.response.body = '<h1>这是个测试的东西</h1>';
  console.log('start');  // -1
  console.log(ctx.request.query); // 得到get数据 路由参数ctx.params
  await next();
  console.log('bbb'); // -3
});
r1.get('/',async (ctx,next)=>{
  console.log('aaa'); // -2
});
//处理静态文件
server.use(static('www'));

koa-route:

...
const route = require('koa-route');
server.use(route.get('/',ctx=>{...}));

ctx.req/res :
原生req、res对象
ctx.request/response : koa封装的req、res

相关文章

网友评论

      本文标题:koa框架学习 1

      本文链接:https://www.haomeiwen.com/subject/gnafaxtx.html