当前位置: 首页 > news >正文

邳州网站开发合肥网站快速排名优化

邳州网站开发,合肥网站快速排名优化,建站之星凡客,杭州市住房与城乡建设部网站以用户注册接口为例#xff0c;需要在请求里携带2个参数#xff1a;用户名#xff08;user_name#xff09;和密码#xff08;password#xff09;。 开发者需要在接口端#xff0c;解析出user_name 、password。 在使用Koa开发的接口中#xff0c;如何解析出请求携带…以用户注册接口为例需要在请求里携带2个参数用户名user_name和密码password。 开发者需要在接口端解析出user_name 、password。 在使用Koa开发的接口中如何解析出请求携带的参数呢 koa-body koa-body是一个用于 Koa 框架的中间件它主要用于处理 HTTP 请求中的请求体。 安装koa-body npm install koa-body -D主要功能 可处理的请求类型 multipart/form-data用于文件上传和包含复杂表单数据的请求。application/x-www-form-urlencoded常见的表单数据编码格式用于简单的表单提交。application/json以 JSON 格式传输数据的请求。application/json-patchjson用于对 JSON 数据进行补丁操作的请求格式。application/vnd.apijson可能是一种特定的 API 数据格式。application/csp-report内容安全策略CSP违规报告的请求格式。text/xmlXML 格式的请求。 解析请求体 可以解析各种类型的请求体包括表单数据、JSON 数据、文件上传等。对于表单数据它可以解析 application/x-www-form-urlencoded 和 multipart/form-data 类型的请求体。对于 JSON 数据它可以解析 application/json 类型的请求体。 提供方便的访问方式 解析后的请求体数据可以通过 ctx.request.body 来访问。如果是表单数据可以通过 ctx.request.body[fieldName] 来访问特定字段的值。如果是 JSON 数据可以直接访问对象属性例如 ctx.request.body.propertyName。 文件上传处理 对于文件上传koa-body 可以将上传的文件存储在指定的目录中并提供文件的信息如文件名、大小、路径等。可以通过配置选项来控制文件上传的大小限制、存储路径等。 中间件模式 koa-body允许在不同的中间件之间共享解析后的请求体而无需重复解析。 错误处理 内置了对解析过程中的错误进行捕获和处理避免因解析问题导致应用崩溃。 Options 选项 patchNode {Boolean}是否将请求体修补到 Node.js 的 ctx.req默认为 false。patchKoa {Boolean}是否将请求体修补到 Koa 的 ctx.request 上默认为 true。jsonLimit {String|Integer}设置 JSON 请求体的字节大小限制默认为 1mb。formLimit {String|Integer}设置表单格式请求体的字节大小限制默认为 56kb。 表单格式application/x-www-form-urlencoded 和 multipart/form-data textLimit {String|Integer}设置文本格式请求体的字节大小限制默认为 56kb。encoding {String}设置传入表单字段的编码默认为 utf-8。multipart {Boolean}是否解析多部分格式multipart/form-data 的请求体默认为 false。urlencoded {Boolean}是否解析 URL 编码的表单请求体默认为 true。text {Boolean}是否解析文本格式的请求体如 XML默认为 true。json {Boolean}是否解析 JSON 格式的请求体默认为 true。jsonStrict {Boolean}切换co-body的严格模式。默认为true。 如果设置为 true则只解析数组或对象。 includeUnparsed {Boolean}切换co-body的returnRawBody选项。默认为false。 如果设置为true对于表单编码和 JSON 请求原始的、未解析的请求体将使用Symbol附加到 ctx.request.body上。 formidable {Object}传递给formidable多部分解析器的选项。 用于配置 multipart/form-data 请求的处理。可以包含以下属性 uploadDir文件上传的目录。默认为操作系统的临时目录。keepExtensions是否保留上传文件的扩展名。默认为 false。maxFieldsSize表单字段的最大大小。默认为 2mb。maxFields表单字段的最大数量。默认为 1000。hash用于计算上传文件的哈希值的算法。默认为 false。如果设置为一个字符串则会使用指定的算法计算哈希值并将哈希值添加到文件对象的 hash 属性中。 onError {Function}自定义错误处理函数如果抛出错误可以自定义响应 ——onError(error, context)默认情况下会抛出错误。parsedMethods {String[]}声明将解析请求体的 HTTP 方法默认为[POST, PUT, PATCH]取代了strict选项。 关于 parsedMethods 的说明 GET、HEAD 和 DELETE 请求对于请求体没有定义的语义但这并不意味着在某些特定用例中它们可能不是有效的。 koa-body 在默认情况下是严格的仅解析 POST、PUT 和 PATCH 请求。 开发者可以使用枚举enumeration或者字符串来选择要解析的方法。例如HttpMethodEnum.PATCH。 使用koa-body解析 body 在app/index.js中引入koa-body注册koa-body为 koa 中间件 const Koa require(koa); // 引入koaBody注意koaBody是一个函数 const { koaBody } require(koa-body)const userRoute require(../router/userRoute)const app new Koa();// koaBody是一个函数 // 因为koaBody负责解析请求体因此应该在所有路由处理之前注册koaBody中间件。 // 中间件的作用是在请求到达路由处理函数之前对请求进行预处理。 app.use(koaBody())// 注册中间件,注意app.use 必须接收函数作为中间件 app.use(userRoute.routes())module.exports app改写controller/userController.js class userController {async register(ctx, next) {// 所有在node.js 环境的打印都会展示在终端console.log(ctx.request.body)// 把请求体作为返回内容ctx.body ctx.request.body} }// 导出userController的实例new userController()是一个对象 module.exports new userController()使用 postman 测试接口 接口成功读取了user/register请求携带的参数并将请求体作为返回内容。 koa-body注册为 Koa 中间件发生了什么 当把 koa-body 注册为 Koa 中间件时会发生以下一系列的过程 请求接收阶段 当客户端向服务器发送请求时请求首先到达 Koa 应用。Koa 按照中间件的注册顺序依次调用中间件函数。 koa-body 中间件执行koa-body 中间件开始处理请求体。 对于不同类型的请求体格式如 JSONapplication/json、表单数据application/x-www-form-urlencoded和多部分表单数据multipart/form-data分别进行解析。根据配置选项如 jsonLimitJSON 请求体大小限制、formLimit表单请求体大小限制等确保请求体在可接受的范围内。如果请求体是 JSON 格式将其解析为一个 JavaScript 对象并将这个对象存储在 ctx.request.body 中以便后续的中间件和路由处理函数可以方便地访问和处理这些结构化的数据。如果是表单数据格式同样将其解析为一个对象并存储在 ctx.request.body。对于多部分表单数据除了解析表单字段外如果有文件上传还会处理文件上传操作。将上传的文件存储在服务器的临时位置并将文件信息如文件名、文件路径、文件大小、文件 MIME 类型等封装成文件对象存储在 ctx.request.files仅在多部分表单数据请求中可用数组中。 后续中间件和路由处理 经过 koa-body 中间件处理后请求继续传递给下一个中间件或路由处理函数。后续的中间件和路由处理函数可以通过 ctx.request.body 和 ctx.request.files来获取解析后的请求体数据和上传的文件信息进行进一步的业务逻辑处理。 例如在一个处理用户注册的路由中可以从 ctx.request.body 中获取用户提交的表单数据包括用户名、密码等信息进行数据验证和存储到数据库等操作。如果有文件上传如用户上传头像图片可以从 ctx.request.files 中获取上传的文件信息进行文件存储和处理。 响应发送阶段 当所有中间件和路由处理函数执行完毕后Koa 根据处理结果生成响应。将响应发送回客户端完成一次请求 - 响应循环。 API 详细说明 ctx.request.body包含解析后的请求体。 如果请求体是 JSON 格式则会被解析为一个 JavaScript 对象。如果请求体是 application/x-www-form-urlencoded 或 multipart/form-data 格式则会被解析为一个对象或一个包含文件对象的对象。 ctx.request.files仅在 multipart/form-data 请求中可用。包含上传的文件对象的数组。 每个文件对象包含以下属性 name文件字段的名称。path文件在服务器上的临时路径。size文件的大小。type文件的 MIME 类型。
http://www.w-s-a.com/news/539672/

相关文章:

  • 网站排名影响因素最牛的科技网站建设
  • 长春网站建设公司怎么样电商网站建设与开发期末考试
  • 品牌网站建设搭建国内外网站建设
  • 辽宁人社app一直更新整站seo定制
  • 兰州网站建设论坛装修品牌
  • 云南省城乡住房与建设厅网站用什么网站可以做电子书
  • 自己电脑怎么做网站服务器吗0基础如何做网站
  • 做网站的股哥网络整合营销方案策划
  • 网站你懂我意思正能量晚上唯品会网站开发费用
  • 网站认证金额怎么做分录网页无法访问是怎么回事
  • 樟木头建网站的wordpress自适应吸附菜单
  • 番禺网站设计威海微网站建设
  • 新乡网站建设服务网站建设的点子
  • 赛罕区城乡建设局网站什么是新媒体运营
  • 松原企业网站建设设计素材网排名
  • 网站建设是那个行业广东公司排名
  • 制作网站要多少钱seo是如何优化
  • 求个网站2020急急急做金融网站拘留多久
  • 网站后台管理系统怎么进seo网络推广外包公司
  • 中山市 做网站网站建设如何上传文件
  • 网站呢建设公众号制作要求
  • 网站备案证明在自己电脑上做网站
  • 沈阳旅游团购网站建设怎么制作网站搜索窗口
  • 做化学合成的网站有哪些枣庄住房和城乡建设局网站
  • 天猫优惠券网站怎么做的网络连接
  • 保定网站建设多少钱公司网页网站建设+ppt模板下载
  • 用户上传商品网站用什么做建设跳转公积金网站
  • 买程序的网站上海市网站建设公司
  • 南通网站建设排名公司哪家好wordpress网站图片迁移
  • 河南省汝州文明建设门户网站博客网站建设源码