1. 首页
  2. IT资讯

基于Koa2搭建Node.js 前后端分离开发、部署服务器实战项目 (四)

“u003Cdivu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002Fb276f47d508a4fd59a6671b49d741a9b” img_width=”542″ img_height=”324″ alt=”基于Koa2搭建Node.js 前后端分离开发、部署服务器实战项目 (四)” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Ch1u003Eu003Cstrongu003E前言u003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Cpu003E在第三章(u003Ca class=”pgc-link” data-content=”mp” href=”https:u002Fu002Fwww.toutiao.comu002Fi6691904879939551752u002F?group_id=6691904879939551752″ target=”_blank”u003E前往第三章学习u003Cu002Fau003E)中,我和大家详细的讲解了koa中最基础的路由中间件koa-router及使用,接下来咱们再延伸看看HTTP请求以及参数的接收和传输方式。u003Cu002Fpu003Eu003Ch1u003Eu003Cstrongu003EHTTP请求(GET\POST)u003Cu002Fstrongu003Eu003Cu002Fh1u003Eu003Cpu003E通过上一章学习,我们都知道了koa-router有get、post、put、del这几种方式来处理请求,在我们实际的项目中最常用的就是GET\POST了。u003Cu002Fpu003Eu003Cpu003E当请求发起后,在路由中捕获请求,解析请求传递过来的参数,数据传递的参数一般有三种:u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E1、请求参数放置在URL后面u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E如:u003Cu002Fpu003Eu003Cpreu003Ehttp:u002Fu002Flocalhost:3000u002Fabout?user=koa&userid=1u003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E极好的是koa-router做了request封装,我们通过query或者querystring就可以直接获取get请求传递的参数u003Cu002Fpu003Eu003Cpu003Equery 是一个对象u003Cu002Fpu003Eu003Cpu003Equerystring 是一个字符串u003Cu002Fpu003Eu003Cpu003E很简单,老样子。我们写个小demo跑一下、node app.js运行u003Cu002Fpu003Eu003Cpreu003Econst Koa = require(‘koa’)u003Cbru003Eu003Cbru003Econst app = new Koa()u003Cbru003Eu003Cbru003Econst router = require(‘koa-router’)()u003Cbru003Eu003Cbru003Erouter.get(‘u002F’, async(ctx, next) => {u003Cbru003E ctx.response.body = `<h1>hi koa<u002Fh1>`u003Cbru003E})u003Cbru003Eu003Cbru003Erouter.get(‘u002Fabout’, async(ctx, next) => {u003Cbru003E console.log(ctx.request.query)u003Cbru003E console.log(ctx.request.querystring)u003Cbru003E ctx.response.body = ‘<h1>about get query<u002Fh1>’u003Cbru003E})u003Cbru003Eu003Cbru003Eapp.use(router.routes())u003Cbru003Eu003Cbru003Eapp.listen(3000, () => {u003Cbru003E console.log(‘server is running at http:u002Fu002Flocalhost:3000’)u003Cbru003E})u003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E运行打开控制台u003Cu002Fpu003Eu003Cpu003E访问 http:u002Fu002Flocalhost:3000u002Fabout?user=koa&userid=1 u003Cu002Fpu003Eu003Cpu003E你就会看到打印输出的内容:u003Cu002Fpu003Eu003Cpreu003E{ user: ‘koa’, userid: ‘1’ }u003Cbru003Eu003Cbru003Euser=koa&userid=1u003Cbru003Eu003Cu002Fpreu003Eu003Cpu003Eu003Cstrongu003E2、请求参数放置在URL中间u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E如:u003Cu002Fpu003Eu003Cpreu003Ehttp:u002Fu002Flocalhost:3000u002Faboutu002F1u002Fkoau003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E这种的传参方式就与第一种获取方式不同了,koa-router会把请求参数解析在params对象上面,这样我们就需要修改路由以达到获取参数值的目的。u003Cu002Fpu003Eu003Cpu003E老样子,上demo,node app.js跑起来u003Cu002Fpu003Eu003Cpreu003Erouter.get(‘u002Faboutu002F:useru002F:userid’, async(ctx, next)=>{u003Cbru003Eu003Cbru003E console.log(ctx.params)u003Cbru003Eu003Cbru003E ctx.response.body = ‘<h1>about params get u002F:useru002F:userid<u002Fh1>’u003Cbru003Eu003Cbru003E})u003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E你就会看到打印输出的内容:u003Cu002Fpu003Eu003Cpreu003E{ user: ‘koa’, userid: ‘1’ }u003Cbru003Eu003Cu002Fpreu003Eu003Cpu003Eu003Cstrongu003E3、请求参数在body中u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Epost请求大家应该都很熟悉,我们大部分的应用场景在表单之类的,常常都以JSON的形式传递,不过koa本身是不会解析json的。u003Cu002Fpu003Eu003Cpu003E这时强大的中间件 “koa-bodyparser” 就起到了很大的作用了。u003Cu002Fpu003Eu003Cpu003E老规矩新中间件就安装u003Cu002Fpu003Eu003Cpu003Erequire(‘koa-bodyparser’)引用u003Cu002Fpu003Eu003Cpu003Eapp.use(bodyParser())调用u003Cu002Fpu003Eu003Cpreu003Enpm i koa-bodyparser -Su003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E老样子手把手教会大家,写上demo ,运行u003Cu002Fpu003Eu003Cpreu003Eu002Fu002F post请求路由u003Cbru003Eu003Cbru003Erouter.post(‘u002Flogin’,async(ctx, next)=>{u003Cbru003Eu003Cbru003E let {user, password} = ctx.request.bodyu003Cbru003Eu003Cbru003E if( user === ‘koa’ && password === ‘123456’ ){u003Cbru003Eu003Cbru003E ctx.response.body = `Hello, ${name}!`u003Cbru003Eu003Cbru003E }else{u003Cbru003Eu003Cbru003E ctx.response.body = ‘对不起,您的账户或密码有误’u003Cbru003E }u003Cbru003Eu003Cbru003E})u003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E这就是一个简单的登录功能,通过表单发起post登录请求u003Cu002Fpu003Eu003Cpu003E我们通过 u003Cstrongu003Ectx.request.body u003Cu002Fstrongu003E去获取body对象即可获取传递的参数u003Cu002Fpu003Eu003Cpu003E很简单吧。相信大家都学会了get\post的参数获取方法。u003Cu002Fpu003Eu003Cpu003E这一章节主要和大家介绍了GET\POST参数传递及获取的方法。u003Cu002Fpu003Eu003Cpu003E下一章我将会给大家说说代码架构搭建、MVC方式。u003Cu002Fpu003Eu003Cpu003E下一章,我们再见!u003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:基于Koa2搭建Node.js 前后端分离开发、部署服务器实战项目 (四)

主题测试文章,只做测试使用。发布者:敢吻,转转请注明出处:http://www.cxybcw.com/11404.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code