nodejs之koa2请求示例(获取,发布)
得到请求
在寇阿相思树中,GET请求获取请求数据请求对象中的询问方法和参数方法,查询方法返回的是格式化好的参数,querystring方法返回的是请求字符串。废话不多说,直接上代码
app.js中添加如下代码:
router.get('/getData ',async (ctx,next)={ //从上下文的请求对象中获取let request=ctx.request让请求查询=request.query//获取格式化参数让req _ query string=request。查询字符串;//获取字符串//从上下文中直接获取让ctx _ query=ctx.query让CTX _查询字符串=CTX。查询字符串;let obj={ req _ query : req _ query,req _ query字符串: req _ query字符串,ctx_query:ctx_query,ctx_query字符串:ctx_query字符串};CTX。回应。body={ status 3360200,msg: '这是得到测试的返回数据,数据: obj };});在index.html中引入jquery,因为用框架的ajax,然后添加如下代码:
var getTest=()={ $ .ajax({ type:'GET ',url:'/getData?a=1b=2c=3 ',dataType:'json ',成功(数据){ console.log(数据);},错误(错误){控制台。日志(err);} });}//添加一个按钮按钮onclick='getTest()'点击测试得到方法/按钮运行项目,点击按钮之后控制台回打印出数据,结果如下
邮政请求
因为寇阿相思树没有对邮政请求获取参数进行封装,所以需要通过原生的开发请求对象请求,将邮政请求数据解析成字符串(例如:a=1b=2c=3),再将线解析成数据格式(例如:{“a”:“1”、“b”:“2”、“c”:“3”})
app.js中添加如下代码:
router.post('/postData ',async (ctx,next)={ 0让后置数据=等待解析后置数据(CTX);控制台。日志(PostDATa);CTX。回应。body={ status 3360200,msg: '这是邮政测试的返回数据,数据: PostDATa };});//解析上下文里结节原生请求的邮政参数函数parsePostData(CTX){ 0返回新的承诺(解析,拒绝)={尝试{让post data=CTX . req . addlistener(' data ',(data)={ post data=data })CTX。请求。addlistener(' end ',function(){ let parseData=parseQueryStr(post data)resolve(parseData)})} catch(err){ reject(err)} })}//将邮政请求参数字符串解析成JSONfunction parseQueryStr(queryStr){ let queryData={ } let queryStrList=queryStr。拆分(')控制台。(让[索引,查询列表]成为查询列表)的日志(查询列表)。entries()){ let item list=query str。split('=')query data[项目列表[0]]=decodeURIComponent(项目列表[1])}返回queryData}index.html中添加如下代码:
var PostTest=()={ let obj={ name : '啦啦啦,描述: '我是卖报的小行家' };$.ajax({ type:'POST ',url:'/postData ',dataType:'json ',data:obj,success(数据){ console.log(数据);},错误(错误){控制台。日志(err);} });}//添加一个邮政请求的按钮按钮onclick='postTest()'点击测试邮政方法/按钮运行,点击按钮之后会打印出如下数据
对于一个用惯了表达的我来说,这样的邮政获取参数方式令我非常的不爽,还好koa-bodyparser中间件解决了这个问题
koa-bodyparser
安装
NPM一KOA-body解析器-保存应用。射流研究…中引入模块
//引入模块const body解析器=require(' KOA-body解析器');//挂载到app app。使用(BodyParser());然后将邮政方法更改为
router.post('/postData ',async (ctx,next)={让PostDATa=CTX。请求。身体;CTX。回应。body={ status 3360200,msg: '这是邮政测试的返回数据,数据: PostDATa };});这样就简单的太多了,感觉赏心悦目,其结果跟上面的是一样的。
至此,koa请求方法介绍完毕,可以愉快的写代码了,下一篇,小弟就记录一下寇阿相思树的错误处理。
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。
版权声明:nodejs之koa2请求示例(获取,发布)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。