• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 浅析node Express框架中的 res.send() 和 res.end()

浅析node Express框架中的 res.send() 和 res.end()

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了node Express框架,Node.js等相关知识,希望对您有所帮助

本篇文章带大家聊聊node Express框架,了解一下Express 中的 res.send() 和 res.end(),希望对大家有所帮助!


浅析node Express框架中的 res.send() 和 res.end()


在使用 Node.js 的服务端代码中,如果使用的是 Express 框架,那么对于一个请求,常常会有两种响应方式:

// 方法1app.get("/end", (req, res, next) =>{    res.end(xxx);});// 方法2app.get("/send", (req, res, next) =>{    res.send(xxx);});

那么这两种方式究竟有何区别?各自的应用场景分别是什么?这是我今天需要讲清楚的。


Express 之 res.end()

定义

它可以在不需要任何数据的情况下快速结束响应。

这个方法实际上来自 Node 核心,具体来说是 http.ServerResponse.Use 的 response.end() 方法:


浅析node Express框架中的 res.send() 和 res.end()


语法

res.end([data[, encoding]][, callback])

参数解析:

data <string> | <Buffer>

encoding <string>

callback <Function>

深入

如果给 res.end() 方法传入一个对象,会发生报错:

浅析node Express框架中的 res.send() 和 res.end()

Express 之 res.send()

定义

向请求客户端发送 HTTP 响应消息。

语法

res.send([body[,statusCode]])

body 参数可以是 Buffer、Object、String、Boolean 或 Array。

深入

通过代码调试,我们可以发现,Express 的 res.send() 方法最终调用的也是 http.ServerResponse.Use 的 response.end() 方法:

// node_modules/express/lib/response.jsres.send = function send(body) {  var chunk = body;  var encoding;  ……  if (req.method === 'HEAD') {    // skip body for HEAD    this.end();  } else {    // respond    this.end(chunk, encoding);  }  return this;};

对比

相同点

Express 的 res.end() 和 res.send() 方法的相同点:

二者最终都是回归到 http.ServerResponse.Use 的 response.end() 方法。

二者都会结束当前响应流程。


不同点

Express 的 res.end() 和 res.send() 方法的不同点:

前者只能发送 string 或者 Buffer 类型,后者可以发送任何类型数据。

从语义来看,前者更适合没有任何响应数据的场景,而后者更适合于存在响应数据的场景。


总结

Express 的 res.end() 和 res.send() 方法使用上,一般建议使用 res.send()方法即可,这样就不需要关心响应数据的格式,因为 Express 内部对数据进行了处理。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 浅析node Express框架中的 res.send() 和 res.end()

相关文章

  • 2022-04-29PHP正则表达式字符如何转义
  • 2022-04-29总结分享一些基于jQuery的前端面试(含移动端常见问题)
  • 2022-04-29优化的实质是什么?
  • 2022-04-29Centos7如何启动与切换图形界面
  • 2022-04-29建网站用哪里的服务器比较好?哪里的空间便宜
  • 2022-04-29CorelDraw实例教程:英文商标字体设计
  • 2022-04-29详解PS进行IOS设计流程的诀窍
  • 2022-04-29Photoshop巧用滤镜制作粉笔字教程
  • 2022-04-29Thinkphp5中验证器的使用方法
  • 2022-04-2920+个值得收藏的PHP常用小技巧

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 长尾关键词挖掘的技巧,你知道吗?
    • PHP怎么遍历数组替换数组中的元素的值
    • js中!与!!的用法介绍
    • MacOS安装VirtualBox的问题小结
    • 一招教你使用Node.js中iis部署运行node(附代码)
    • ThinkPHP5访问怎么去除/public/index.php
    • CSS3如何实现图片木桶布局?(附代码)
    • 怎么解决javascript数字计算丢失精度问题?
    • 帝国cms忘记后台登录认证码和安全问题的解决方法
    • CSS实现领积分动画效果

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有