• koa基础应用


    不要把koa想得太复杂,他就是一个Node框架而已。

    在本地应用安装好Node和koa后,先实现一下简单的服务app.js,代码如下:

    const Koa = require('koa')
    const app = new Koa();
    app.use(async (context) => {
        context.body = 'hello Koa'
    });
    
    app.listen(3000);
    
    console.log('服务正在启动,端口号为:3000');
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    执行命令:node app.js。然后在浏览器中打开http://localhost:3000/,页面显示:hello Koa。

    在这里插入图片描述

    中间件的使用

    什么是中间件呢?中间件,就是在请求和响应之间设置不同的关卡,做不同类型的工作。比如:

    在这里插入图片描述
    安装几个常见的中间,因为是在学习,所以尽量了解多个中间件。在实际开发中,根据需要安装合适的中间件即可。

    koa-router 路由
    koa-onerror 错误信息
    koa-bodyparser 解析body的JSON
    koa-logger 日志
    koa-cors 跨域
    koa-static 静态资源
    nodemon 热更新
    debug debug模式

    数据库就使用MySQL。

    项目的目录结构是这样:

    1. middelware,中间件;
    2. controller:控制层、业务层
    3. config:数据库等等设置文件
    4. dbhelper:SQL语句
    5. routes:路由
    6. modal:对象层

    路由

    前端项目有路由,后端也有路由。前端的路由是浏览器提供监听URL的相关事件,用来进行相关的处理;

    后端路由:则是拿到请求对象中的URL,根据URL来执行对应的逻辑。

    koa有两种路由:一种是原生路由,通过request对象的URL属性进行判断,作相应的逻辑处理;

    另一种使用koa-router中间件来实现路由。

    原生路由:

    const Koa = require('koa')
    const app = new Koa();
    
    app.use(async (context, next) => {
        const url = context.request.url;
        let content = ''
        switch (url) {
            case '/api/get/userInfo':
                content = '用户信息的接口';
                break;
            case "/api/update/userInfo":
                content = '更新用户信息的接口';
                break;
            case '/api/del/userInfo':
                content = '删除用户的接口'break;
            default:
                content = '400:没有匹配到这个接口';
                break;
        }
    });
    
    
    app.listen(3000, () => {
        console.log('服务正在启动,端口号为:3000');
    });
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    中间件路由,安装好koa-router依赖之后,首先注册一下中间件:

    修改一下app.js文件:

    const Koa = require('koa')
    const app = new Koa();
    const Router = require('koa-router');
    
    const router = new Router();
    router.get('/api/get/userInfo', async (context) => {
        context.body = '获取用户信息的接口'
    });
    
    app.use(router.routes()).use(async (context) => {
        context.body = "没有匹配的接口"
    })
    app.listen(3000, () => {
        console.log('服务正在启动,端口号为:3000');
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    效果如图:

    在这里插入图片描述
    同样,其他中间件,以同样的方法引入:

    // 注册 onerror
    onerror(app);
    
    // 注册bodyparser
    app.use(bodyparser());
    
    app.use(logger());
    app.use(require('koa-static')(__dirname,'public'));
    app.use(cors());
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    静态服务器

    静态服务器,就是提供一个读取静态文件、静态目录的作用。

    koa也可以实现静态服务器的功能。有两种方式:一种是利用koa中间件【koa-static】;另一种使用原生的方式来实现。

    在项目目录下的public文件夹。就是存放静态文件的。

    在这里插入图片描述
    配置如下:

    const Koa = require('koa')
    const app = new Koa();
    const Router = require('koa-router');
    const onerror = require('koa-onerror');
    const bodyparser = require('koa-bodyparser');
    const logger = require('koa-logger');
    const cors = require('koa-cors');
    const path = require('path');
    const static = require('koa-static');
    
    const staticPath = './public'
    
    // 注册 onerror
    onerror(app);
    
    // 注册bodyparser
    app.use(bodyparser());
    
    app.use(logger());
    app.use(static(path.join(__dirname,staticPath)));
    
    
    
    const router = new Router();
    router.get('/api/get/userInfo', async (context) => {
        context.body = '获取用户信息的接口'
    });
    
    app.use(router.routes()).use(async (context) => {
        context.body = "没有匹配的接口"
    })
    
    
    app.listen(3000, () => {
        console.log('服务正在启动,端口号为:3000');
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    这就是koa的基本配置。

  • 相关阅读:
    java计算机毕业设计航空订票管理系统源程序+mysql+系统+lw文档+远程调试
    css动画效果和canvas
    SpringMVC之完成对前端传来的数据进行校验
    MyBatis select标签
    PAT甲级 1066 Root of AVL Tree
    赔腾讯70万,QQ“自动抢红包”软件被判不正当竞争
    ssh 免密码登录
    小知识:使用oracle用户查看RAC集群资源状态
    多线程 | 《Java 并发编程艺术》的学习
    从手动测试到自动测试,企业该如何选择?
  • 原文地址:https://blog.csdn.net/xuelian3015/article/details/133431539