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

企业备案网站名称怎么填邯郸市做网站建设

企业备案网站名称怎么填,邯郸市做网站建设,网站编辑的栏目怎么做,wix做中文网站怎么样有关于 Transfer-Encoding:chunked 类型的响应#xff0c;参见之前的文章HTTP 响应的分块传输。这里看 Koa 中如何实现。 Koa 中请求返回的处理 虽然官方文档有描述说明不建议直接调用 response.write#xff1a; Bypassing Koas response handling is not supported. Avoid … 有关于 Transfer-Encoding:chunked 类型的响应参见之前的文章HTTP 响应的分块传输。这里看 Koa 中如何实现。 Koa 中请求返回的处理 虽然官方文档有描述说明不建议直接调用 response.write Bypassing Koas response handling is not supported. Avoid using the following node properties: res.statusCoderes.writeHead()res.write()res.end() 但要实现分片向客户端发送数据必然还是得调用 Node.js Http 模块的 response.write(chunk[, encoding][, callback]) 方法而这里的 response 就是 ctx.res 或 ctx.response。 所以为什么 Koa 要说不建议直接调用上述方法操作请求的返回呢我们来看看 Koa 内部对 response 都会做些什么默认的处理。 application.js handleRequest(ctx, fnMiddleware) {const res ctx.res;res.statusCode 404;const onerror err ctx.onerror(err);const handleResponse () respond(ctx);onFinished(res, onerror);return fnMiddleware(ctx).then(handleResponse).catch(onerror);} 在应用完各种中间件后fnMiddleware(ctx)通过 handleResponse 对请求进行一些操作最终是在 respond 函数里。 respond 方法 function respond(ctx) {// allow bypassing koaif (false ctx.respond) return;if (!ctx.writable) return;const res ctx.res;let body ctx.body;const code ctx.status;// ignore bodyif (statuses.empty[code]) {// strip headersctx.body null;return res.end();}if (HEAD ctx.method) {if (!res.headersSent isJSON(body)) {ctx.length Buffer.byteLength(JSON.stringify(body));}return res.end();}// status bodyif (null body) {if (ctx.req.httpVersionMajor 2) {body String(code);} else {body ctx.message || String(code);}if (!res.headersSent) {ctx.type text;ctx.length Buffer.byteLength(body);}return res.end(body);}// responsesif (Buffer.isBuffer(body)) return res.end(body);if (string typeof body) return res.end(body);if (body instanceof Stream) return body.pipe(res);// body: jsonbody JSON.stringify(body);if (!res.headersSent) {ctx.length Buffer.byteLength(body);}res.end(body); } respond 方法里会根据外部是否有设置过 ctx.body以及不同的 header 来设置 ctx.body最终会调用 response.end 来结束掉本次请求。 注意到如果设置了 ctx.respond false这个方法就直接 return 了这是一种跳过这里处理的方式。但其实如果我们在中间件中手动调用了 ctx.res.end() 后相当于已经提前结束掉请求了同样也不会走 Koa 这里的处理。 所以直接在中间件中调用 ctx.res.write() 及 ctx.res.end() 就可以实现 chunked 类型的响应倒无须对 Koa 做额外设置。 Koa 实现 chunked 数据传输 根据上面的分析及之前一篇关于HTTP 响应的分块传输的文章我们得出以下 Koa 中的实现逻辑 const Koa require(koa); const app new Koa(); const PORT 3000; app.use((ctx, _next) {const res ctx.res;ctx.status 200;res.setHeader(Content-Type, text/html);res.write(startbr);return new Promise(resolve {let i 0,total 5;while (i total) {(function(i) {setTimeout(() {if (i total) {resolve();res.end();} else {res.write(${i}br);}}, i * 1000);})(i);i;}}); });app.listen(PORT); console.info(server started at http://localhost:${PORT}); 运行效果 Koa 中实现 chunked 响应的运行效果 如你所见Koa 中的这个实现会在调用 ctx.res.end() 后将本来应该在页面内容中处于最顶部的内容移动到最底部。不解。 或者通过 curl 在命令行中查看效果 $ curl -N http://localhost:3000 命令行中接收 chunked 数据的效果 示例代码可在 wayou/koa-chunked-response 找到。 相关资源 wayou/koa-chunked-responseKoa documentationNode.js Docs - response.write(chunk[, encoding][, callback])Node.js Docs - response.end([data][, encoding][, callback])转载于:https://www.cnblogs.com/Wayou/p/koa_transfer_encoding_chunked.html
http://www.huolong8.cn/news/345430/

相关文章:

  • 山丹做网站的公司室内装饰设计师证书
  • 郑州数码网站建设服务公司网页素材图标
  • 龙岗网站建设哪家便宜wordpress 生成目录
  • 网站搭建哪里找方便seo常规优化
  • 非洲用什么网站做采购做网站一定要公司备案吗
  • ps网站首页直线教程杭州seo优化公司
  • 网站建设的实训总结爱做网站外国
  • 每天干每天做网站网站建设一般考虑哪些因素
  • h5个网站的区别办公空间设计课程总结
  • 超值的扬中网站建设网站建设留言板怎么做
  • 国内企业手机网站建设株洲网站定制
  • 微表单网站济南市住房和城乡建设部网站
  • php网站开发环境一安卓软件下载app
  • 网站建设分录怎么开八宿县网站seo优化排名
  • 专业的网站建设案例公司装修合同
  • 网站扫描怎么做门户网站与搜索引擎的区别
  • 做美陈3d模型网站模仿别人网站侵权
  • 北京康迪建设监理咨询有限公司网站6做熟食的网站美食网站
  • wordpress建娱乐站长沙seo推广
  • 文案交流网站建筑建设行业网站
  • 高中生做网站网页如何做网页设计
  • 2015网站建设广东省网站免备案表
  • muse cc 做网站怎么再贴吧给自己的网站做宣传
  • 网站建设与维护工作申请号的网站
  • 贵阳微网站建设公司哪家好百度推广怎么弄
  • 做摄影和后期的兼职网站猎头公司是啥意思
  • 郑州网站制作专业乐云seo著名营销成功案例
  • 菏泽网站建设效果wordpress怎么创建目录页面
  • 用虚拟机做网站服务器大众点评怎么做团购网站
  • 网站的劣势做优惠券网站赚钱吗