作为一个WEB框架我们第一个想到的就是怎么样取得客户端提交的参数,其实在koa中我们主要分为get及post方法来取得不同的参数,get方法是指url后面带的参数,post一般是指通过form提交的参数,为了方便测试我们使用postman来提交,在测试中发现除了get和post不同外,其它像delete,put等的提交方式和post是一样的。
const Koa = require('koa')
const app = new Koa()
app.use( async (ctx) => {
ctx.body = {
"url":ctx.url,
"query":ctx.query,
"ctx_queryString":ctx.querystring,
body:ctx.request.body
}
})
app.listen(3000, () => {
console.log('start ok')
})
输出结果为:
{
"url": "/?name=%E6%B8%AC%E8%A9%A6",
"query": {
"name": "測試"
},
"ctx_queryString": "name=%E6%B8%AC%E8%A9%A6",
"body": {
"name": "陳漮"
}
}
从上面代码可以看出querystring取出来的是一个原始的字符串,也就是url后面的东西,而query带出来的是把字符串转换成了对象,这样我们就可以直接取得他的各属性的值,如:ctx.query.name来取得值。在测试中发现ctx.request.query和ctx.query输出的结果相同。