koa获取get和post请求的参数

4 篇文章 0 订阅

Koa

koa是Nodejs的一新款web框架,非常好用,用起来比express爽很多,用过就知道了。
初学者选择nodejs的web框架时,可以直接选择Koa这款框架。
本文先简单介绍一下koa获取参数的方法。

安装

npm install koa -g 

开始使用吧,hello koa

const Koa = require('koa')
const app = new Koa()

app.use( async (ctx) => {
  	ctx.body = 'hello koa'
})

app.listen(3000, () => {
	console.log('start ok')
})

获取请求的参数

获取get请求的参数就比较简单了,可以直接通过ctx点语法出来,下面是获取get请求参数的代码

const Koa = require('koa')
const app = new Koa()

app.use( async (ctx) => {
    ctx.body = {
        url: ctx.url,
        ctx_query: ctx.query,
        ctx_querystring: ctx.querystring
    }
})

app.listen(3000, () => {
	console.log('start ok')
})

获取post请求参数,使用原生比较繁琐,需要转换,等等介绍一下使用中间件来获取post请求参数,就很简单方便了

//使用原生方式
const Koa = require('koa')
const app = new Koa()

app.use( async (ctx) => {
    let data = await parseData(ctx)
    ctx.body = data
})

app.listen(3000, () => {
    console.log('start ok')
})

function parseData(ctx) {
    return new Promise((resolve, reject) => {
        try {
            let str = ''
            ctx.req.on('data', (data) => {
                str += data
            })
            ctx.req.addListener('end', () => {
                resolve(parseUrl(str))
            })
        } catch (err) {
            reject(err)
        }
    });
}

function parseUrl(url) {
    let obj = {}
    let arr = url.split('&')
    arr.forEach((e, i) => {
        let temparr = e.split('=')
        obj[temparr[0]] = temparr[1]
    });
    return obj
}

下面这是使用中间件:koa-bodyparser,来获取post请求的参数

首先先得安装好中间件
npm install koa-bodyparser --save
安装好后,就试一试吧:
-----------------------------------------------
const Koa = require('koa')
const bodyParser = require('koa-bodyparser')

const app = new Koa()

app.use(bodyParser())

app.use( async (ctx) => {
    ctx.body =  ctx.request.body
})

app.listen(3000, () => {
    console.log('start ok')
})
------------------------------------------------
再于原生方式作对比,是不是很简单呢,直接一个,request.body就可以获取到post请求的参数了。
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Koa Router是一个用于处理路由的中间件,它是基于Koa框架的一个插件。它提供了一种简洁的方式来定义和处理路由,使得在Koa应用中管理和处理不同的请求变得更加容易。 使用Koa Router,你可以通过定义路由和相应的处理函数来实现不同URL路径的映射。它支持常见的HTTP方法,如GET、POST、PUT、DELETE等,并且可以处理动态路由和参数。 以下是Koa Router的一些主要特性和用法: 1. 定义路由:你可以使用Koa Router的`router.get()`、`router.post()`等方法来定义不同HTTP方法的路由。例如,`router.get('/users', getUsers)`表示处理GET请求的/users路径。 2. 处理函数:你可以为每个路由定义一个处理函数,用于处理请求并返回响应。处理函数可以是一个普通的异步函数,也可以是一个Koa中间件。 3. 动态路由:Koa Router支持动态路由,你可以在路由路径中使用参数来匹配不同的URL。例如,`router.get('/users/:id', getUserById)`表示匹配/users/后面的任意字符串,并将其作为参数传递给getUserById函数。 4. 路由嵌套:你可以使用Koa Router实现路由的嵌套,将相关的路由组织在一起。这样可以更好地组织和管理路由,提高代码的可读性和可维护性。 5. 中间件支持:Koa Router本身也是一个Koa中间件,你可以将其作为其他中间件的一部分来使用。这样可以在路由处理之前或之后执行一些额外的逻辑,如身份验证、错误处理等。 总的来说,Koa Router提供了一种简单而灵活的方式来处理路由,使得构建和管理Koa应用的路由变得更加方便和可扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值