leiwuhen-67's blog leiwuhen-67's blog
首页
    • 《Vue》笔记
    • 《React》笔记
    • 《NodeJs》笔记
    • 《CSS》笔记
    • 《Redis》笔记
    • 基础入门
    • 《Mock》笔记
    • 《MySQL》笔记
    • 《Git》相关
影音视听
收藏
关于
GitHub (opens new window)

我的公众号

首页
    • 《Vue》笔记
    • 《React》笔记
    • 《NodeJs》笔记
    • 《CSS》笔记
    • 《Redis》笔记
    • 基础入门
    • 《Mock》笔记
    • 《MySQL》笔记
    • 《Git》相关
影音视听
收藏
关于
GitHub (opens new window)
  • Express

  • Koa

    • koa应用搭建与路由配置
      • koa连接数据库
      • 用户认证之jsonwebtoken
    • Egg

    • Node相关

    • 《NodeJs》笔记
    • Koa
    心欲无痕
    2022-04-19
    目录

    koa应用搭建与路由配置

    # 1、基础应用搭建:

    创建一个 koa 项目目录

    mkdir myapp
    
    1

    进入刚创建的项目

    cd myapp
    
    1

    执行 npm init 生成项目配置文件:通过 npm init 命令为应用创建一个 package.json 文件。

    npm init
    
    1

    此命令将要求输入几个参数,如应用名、版本号、描述、作者等。可以直接按‘回车’使用默认的。此命令将要求输入几个参数,如应用名、版本号、描述、作者等。可以直接按‘回车’使用默认的。

    entry poin: (index.js)
    
    1

    接下来新建一个 app.js 然后安装 koa:

    键入 app.js 或者你所希望的名称,这是当前应用的入口文件。

    然后安装 koa 将其保存到依赖列表中

    npm install koa -S
    
    1

    然后在新建的app.js中引入koa,代码如下:
    //引入Koa
    const koa=require('koa');
    
    const app=new koa();
    
    //配置中间件
    app.use( async (ctx)=>{
     ctx.body='hello koa2'
    })
    
    //监听端口
    app.listen(3000);
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    # 2、路由的配置:


    首先需要安装koa-router
    npm install koa-router -S
    
    1

    在项目根目录下创建routes目录,routes/index.js文件代码如下:
    const Router = require('koa-router')
    const router = new Router()
    
    router.get('/list', async (ctx) => {
        ctx.body = '列表'
    })
    
    router.get('/news', async (ctx) => {
        console.log('ctx', ctx.query)  // 读取get请求传递的值,如{name: '张三', age: 34}
       console.log('url', ctx.url)   // 中文会自动进行编码 /news?name=%E5%BC%A0%E4%B8%89&age=34
       ctx.body = '新闻'
    })
    
    module.exports = router
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    在 app.js 文件中更改代码如下:

    // 引入koa
    const koa = require('koa')
    const app = new koa()
    const Router = require('koa-router')
    
    const apiRouter = require('./routes/index')
    //装载所有子路由
    let router = new Router()
    router.use('/api', apiRouter.routes())
    
    // 加载路由中间件
    app.use(router.routes())
       .use(router.allowedMethods())
    
    // 配置中间件
    app.use(async (ctx) => {
        ctx.body = 'hello world!'
    })
    
    // 监听端口号
    app.listen(3000)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21

    现在访问localhost:3000/api/list和localhost:3000/api/news可以分别看到效果。
    在get请求中可以通过ctx.query来获取get的传值。

    koa-bodyparser模块使用:


    在post请求中,koa-bodyparser中间件可以把koa2上下文的formData数据解析到ctx.request.body中
    npm install koa-bodyparser -S
    
    1

    在 app.js 中引入配置中间件

    var Koa = require('koa');
    var bodyParser = require('koa-bodyparser');
    var app = new Koa();
    app.use(bodyParser());
     
    
    1
    2
    3
    4
    5

    然后在请求中就可以这样获取 post 传递的参数了

    router.post('/login', async (ctx) => {
        console.log('ctx', ctx.request.body)
        ctx.body = 'hello world'
    })
    
    1
    2
    3
    4

    跨域处理:


    在koa2中处理跨域,需要用到koa2-cors这个模块:
    npm install koa2-cors -S
    
    1

    在 app.js 中配置中间件

    var Koa = require('koa');
    var cors = require('koa2-cors');
    
    var app = new Koa();
    app.use(cors());
    
    1
    2
    3
    4
    5

    静态资源加载:


    在koa2中,访问静态资源,需要使用koa-static中间件
    npm install koa-static -S
    
    1

    在app.js中配置中间件
    const static = require('koa-static'); 
    
    app.use(static(
        path.join( __dirname,  'public')
    )) 
    
    1
    2
    3
    4
    5
    编辑 (opens new window)
    上次更新: 7/2/2024, 11:06:45 AM
    Node多环境配置(开发环境、生产环境)
    koa连接数据库

    ← Node多环境配置(开发环境、生产环境) koa连接数据库→

    Theme by Vdoing
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式