Node.js的expressjs框架对response的处理流程实验
来源:互联网 发布:电脑报淘宝店怎么样 编辑:程序博客网 时间:2024/04/30 16:53
之前一直考虑实现这么个流程:
- 获取用户更新数据的请求
- 更新缓存
- 返回结果
- 数据持久化
主要是不想让数据持久化这一步占用响应时间,实验的代码如下
app.get('/', function (req, res, next) { res.status(200).jsonp({ data: "AAA" }) next()}, function (req, res) { setTimeout(function () { console.log("Cached!"); }, 5000)});
这里我们用了express的中间件,可以把数据处理的各个流程写到不同的function里面,根据需要组装。用POSTMAN测试一下,你会看到瞬间返回了“AAA”,然后过了5秒钟才在console打出了”Cached“,这基本就是我想要的结果。
然后继续实验,把
res.status(200).jsonp({ data: "AAA" })
改成
return res.status(200).jsonp({ data: "AAA" })
这次客户端正常返回,但是console没有打印出”Cached“,也就是说加了return之后直接结束了整个响应流程,后面的所有代码和中间件都不再执行了。
我们继续改造:
app.get('/', function (req, res, next) { res.status(200).jsonp({ data: "AAA" }) next()}, function (req, res) { res.status(200).jsonp({ data: "BBB" }) setTimeout(function () { console.log("Cached!"); }, 5000)});
那如果我多次修改response对象会怎么样呢?
这次客户端也收到结果了,但是console却直接打印了Error:Cannot set header after they are sent.
由此我们可见res之后响应就直接发给客户端了。
0 0
- Node.js的expressjs框架对response的处理流程实验
- 对Django框架架构和Request/Response处理流程的分析
- 对Django框架架构和Request/Response处理流程的分析
- 对Django框架架构和Request/Response处理流程的分析
- 对Django框架架构和Request/Response处理流程的分析
- 对Django框架架构和Request/Response处理流程的分析
- 对Django框架架构和Request/Response处理流程的分析
- 使用Backbone.js, ExpressJS, node.js, MongoDB的web应用样板工程
- Node.js的express框架
- node.js的koa框架
- ExpressJS 4.0的新功能
- JS处理服务端Response回来的数组
- NodeJS教程--基于ExpressJS框架的文件上传
- nodejs框架expressJS跨域处理
- node.js对mongodb的连接&增删改查(附async同步流程控制)
- [Node.js]14款最佳的Node.js Web框架
- WebWork框架的处理流程
- WebWork框架的处理流程
- react.js学习(1) webpack
- 微信链接一键关注
- iOS开发 - JGProgressHUD(第三方)
- 插入式验证模块(PAM)
- 记录下读取applicationContext.xml路径的问题
- Node.js的expressjs框架对response的处理流程实验
- 视频如何添加字幕
- 微博 https 请求协议
- iOS开发 - FMDatabase 使用
- 动画—Core Animation初步学习四:动画组,一系列动画的组合,能构建出复杂的动画效果
- Cocoa 新的依赖管理工具:Carthage
- string及vector核心相关知识
- 创还原表空间
- 音乐播放