3.koa框架

koa介绍             网址:koa.bootcss.com

koa是express原班人马打造的轻量、健壮、富有表现力的nodejs框架。目前koa有koa1和koa2两个版本;koa2依赖Node.js 7.6.0或者更高版本;koa不在内核方法中绑定任何中间件,它仅仅是一个轻量级的函数库,几乎所有功能都必须通过第三方插件来实现。

koa安装

npm init -y  创建package.json

npm i koa -s  安装koa

执行顺序,洋葱模型

创建一个简单的koa服务器

// 创建服务器;

const Koa = require("koa");

let app = new Koa();              //Application

// 中间件;

app.use(ctx=>{                    //context 对象、环境、上下文

    ctx.body = "hello world 你好";

})

app.listen(3000);


Koa 利用中间件 控制"上游",调用"下游“;

  - koa是包含一组中间件函数的对象;可以将app.use里的函数理解成中间件

koa中间件middleware

 

// koa  express 是nodejs的框架;轻量级;

// 创建服务器;

const Koa = require("koa");

let app = new Koa();  //Application

// 中间件;函数;

// ctx:context简写;(res和req);

let m1 = function(ctx,next){

    console.log("m1start");

    // throw new Error("some error...");

    next();  //转交控制权给下一个中间件;m2();

    console.log("m1end");

}

let m2 = function(ctx,next){

    console.log("m2start");

    next();

    console.log("m2end");

}

app.use(m1);

app.use(m2);

app.use(async ctx=>{

    //1. 异步处理: async await;

//    let res = await new Promise(resolve=>{

//         setTimeout(() => {

//             resolve("结果");

//         }, 1000);

//     })

//     console.log(res)

    // console.log(ctx.req.url);

    // 2. 获取get参数; ctx封装;

    // console.log(ctx.request.query.age);

    // ctx.res  ==== res; ctx.req=== req;

    // ctx.response  koa封装的res ctx.request koa封装的req

    // 3.别名;res输出;  ctx.body(别名) 完整写法;ctx.response.body;

    // 4.中间件执行顺序;

    ctx.response.body = "hello world 你好";

})

// 错误处理中间件;

app.on("error",err=>{

    console.log("??",err);

})

app.listen(3000);


ctx.request.body      请求.body

ctx.request.query      请求.查询      ?后参数可以不给

ctx.params.id            参数.id         id为必须参数


koa常用中间件介绍

一、koa-router  

        路由是引导匹配之意,是匹配url到相应处理程序的活动。

koa-router安装

npm i koa-router -S

Koa-router使用

Koa-router推荐使用RESTful架构API。Restful的全称是Representational State Transfer 即表现层转移。

        RESTful是一种软件架构风格、设计风格,而**不是**标准,只是提供了一组设计原则和约束条件。基于这个风格设计可以更简洁,更有层次;

        非RESTful架构api:

        使用RESTful架构设计api

        REST设计一般符合如下条件:

                程序或者应用的事物都应该被抽象为资源

                每个资源对应唯一的URI(uri是统一资源标识符)

                使用统一接口对资源进行操作

                对资源的各种操作不会改变资源标识

                所有操作都是无状态的

二、koa-views 

    Koa-views用于加载html模板文件;

安装 koa-views

        npm i koa-views -S

 

三、koa-static

   koa-static     是用于加载静态资源的中间件,通过它可以加载css、js等静态资源;

安装 koa-static 

    npm i koa-static -S

使用koa-static

四、koa-bodyparser

    npm i koa-bodyparser -S

拿到koa post提交数据

 

五、md5

    npm i md5 -S

用于加密

 

六、koa-server-http-proxy

    npm i koa-server-http-proxy -S

koa路由        const koaServerHttpProxy = require("koa-server-http-proxy");


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Koa框架中使用Socket.IO,可以按照以下步骤进行设置: 1. 安装所需的依赖: 在你的Koa项目中,使用以下命令安装Socket.IO和相关依赖: ``` npm install socket.io koa-socket-2 ``` 2. 在Koa应用中集成Socket.IO: 在你的Koa应用中,引入必要的模块并集成Socket.IO: ```javascript const Koa = require('koa'); const app = new Koa(); const server = require('http').createServer(app.callback()); const io = require('socket.io')(server); const { contextEnhancer } = require('koa-socket-2'); // 将io对象绑定到Koa应用的context上 app.context.io = io; // 使用koa-socket-2中间件增强context app.use(contextEnhancer()); // 在这里可以定义Socket.IO的事件处理逻辑 io.on('connection', (socket) => { console.log('A user connected'); // 监听客户端发送的消息 socket.on('message', (data) => { console.log('Received message:', data); // 可以在这里处理收到的消息,并将回复发送给客户端 socket.emit('reply', 'Hello from server'); }); // 监听断开连接事件 socket.on('disconnect', () => { console.log('A user disconnected'); }); }); // 启动服务器 server.listen(3000, () => { console.log('Server is running on port 3000'); }); ``` 3. 在Koa路由中使用Socket.IO: 在Koa的路由处理函数中,可以通过访问`ctx.io`来使用Socket.IO的功能: ```javascript const Router = require('koa-router'); const router = new Router(); router.get('/socket', (ctx) => { const io = ctx.io; // 在这里可以使用io对象进行Socket.IO相关操作,例如发送消息 io.emit('message', 'Hello from server'); ctx.body = 'Socket.IO example'; }); app.use(router.routes()); // 其他路由和中间件... ``` 以上示例展示了如何在Koa框架中使用Socket.IO来建立WebSocket连接和处理事件。你可以根据需求在事件处理逻辑中添加更多功能和自定义事件。 注意:在Koa中使用Socket.IO时,需要使用`koa-socket-2`中间件来增强Koa的context对象,以便于在路由处理函数中访问到Socket.IO的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值