KOA2的安装和使用教程

KOA2

基于node.js平台的web服务器框架

Express.Koa(这个已经淘汰不用),Koa2都是web服务器的框架

Express异步处理:回调函数;

Koa异步处理:Generator+yield

Koa2异步处理:async/await

由于Koa2支持async/await,所以它要求Node的版本至少(最低)是7.6。因为async/await是在Node7.6版本之后出现才支持的

在Koa2的世界中,服务器处理请求的那一块程序,被称为中间件

洋葱模型:中间件对请求的处理有一种先进后出的感觉,调用顺序类似于:1-2-3-4-3-2-1,除了中间那一层,其余都对请求处理了两次

Koa2的快速上手

1.检查Node

先检查Node的版本,是否是7.6及以上

node -v
2.安装Koa2
npm init -y

这一步可以创建出package.json的文件,这个文件可以维护向中的第三包的信息

npm install koa
3.编写入口文件

在项目目录下创建一个js文件(app.js)

3.1创建koa对象

const Koa = require('koa');		//导入构造方法
const app = new Koa();		//创建实例对象

3.2编写响应函数(中间件)

响应函数(.use(ctx,next))

ctx:上下文。指的是请求所处在的Web容器,我们可以通过ctx.request拿到请求对象,也可以通过response拿到响应对象。

next:内层(下一个)中间件执行的入口

const Koa = require('koa');
const app = new Koa();
/* 这是一个中间件.use() 里面放的是一个回调函数
只有一个请求, 一个响应 */
app.use(function(ctx, next) {
    // 显示我们请求的路径
    // console.log(ctx.request.url);
    ctx.response.body = "hello world";
    console.log(1111);		//第一个输出
    next();
    console.log(3333);		//第三个输出
})
app.use(function(ctx) {
    // 显示我们请求的路径
    // console.log(ctx.request.url);
    console.log(2222);		//第二输出
    ctx.response.body = "hello world!!!!!";
})
//端口号自定义,不要冲突
app.listen(8080);

3.3指明端口号

app.listen(8080)
4.启动服务器:

node 文件名

node app.js

然后在浏览器输入:**127.0.0.1:8080/(或者localhost:8080/)**查看效果

拿promise里面的数据,有两个方式:
1.通过next().then()获取
const Koa = require('koa');
const app = new Koa();

app.use(function(ctx, next) {
    ctx.response.body = "hello world";
    next().then(function(data) {
        console.log(data); //123456
    });
})
app.use(function(ctx) {
    return 123456;
})
app.listen(8080);
2.通过async/await获取
const Koa = require('koa');
const app = new Koa();

app.use(async function(ctx, next) {
    ctx.response.body = "hello world";
    var aa = await next();
    console.log(aa);
})
app.use(function(ctx) {
    return 123456;
})
app.listen(8080);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值