博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nodeJs中res.end和res.send 区别
阅读量:6218 次
发布时间:2019-06-21

本文共 1379 字,大约阅读时间需要 4 分钟。

  hot3.png

res.end和res.send 区别

-------引言-------

百度了一下这个问题都是这样回答的,感觉很不准,所以自己查文档归纳了一下,希望对大家有所帮助 ^_^

简单来说就是 如果服务器端没有数据返回到客户端 那么就可以用 res.end

但是 如果 服务器端有数据返回到客户端 这个时候必须用res.send ,不能用 res.end(会报错)

-------正文-------

官方说明:

  • res.end() 终结响应处理流程。
  • res.send() 发送各种类型的响应。

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

结束响应过程。这个方法实际上来自Node核心,特别是http.ServerResponse的response.end()方法。

用于在没有任何数据的情况下快速结束响应。如果需要响应数据,请使用res.send()和res.json()等方法。

res.end();res.status(404).end();

2.res.send([body])

发送HTTP响应。

所述body参数可以是一个Buffer对象,一个String,对象,或一个Array。例如:

res.send(new Buffer('whoop'));res.send({ some: 'json' });res.send('

some html

');res.status(404).send('Sorry, we cannot find that!');res.status(500).send({ error: 'something blew up' });

此方法为简单的非流式响应执行许多有用的任务:例如,它自动分配Content-Length HTTP响应头字段(除非先前已定义)并自动提供HEAD和HTTP缓存支持。

当参数是Buffer对象时,该方法将Content-Type 响应头字段设置为“application / octet-stream”,除非先前定义如下所示:

res.set('Content-Type', 'text/html');res.send(new Buffer('

some html

'));

当参数为String,该方法将设置Content-Type为“text / html”:

res.send('

some html

');

当参数是Array或Object,Express以JSON表示响应:

res.send({ user: 'tobi' });res.send([1,2,3]);

总结:

  1. 参数类型的区别:
  • res.end() 参数为: a Buffer object / a String
  • res.send() 参数为: a Buffer object / a String / an object / an Array
  1. 发送服务器内容不同
  • res.end() 只接受服务器响应数据,如果是中文则会乱码
  • res.send() 发送给服务端时,会自动发送更多的响应报文头,其中包括 Content-Tpye: text/html; charset=uft-8,所以中文不会乱码

参考链接

转载于:https://my.oschina.net/rlqmy/blog/1927522

你可能感兴趣的文章
SDUT 3327 顺序表应用4:元素位置互换之逆置算法
查看>>
SDUT 3401 数据结构实验之排序四:寻找大富翁
查看>>
验证线程是数据共享的
查看>>
微软官方在线培训课程汇总2011版
查看>>
vForum 2011 Beijing现场图文播报一
查看>>
haproxy 7层负载均衡代理转发实战讲解(二)-老男孩笔记系列
查看>>
事务长期不提交导致日志不能截断
查看>>
吾儿秘史--趣事糗事大杂烩第二季(2014.6.2-)-更新到2014年9月8日
查看>>
SQL Server 高可用性(六)日志传送
查看>>
服务器负载暴涨以后...
查看>>
由IDC机房测试谈主动工作教学实战案例!
查看>>
Hadoop运维记录系列(二十一)
查看>>
IP NAT常见误解笔记
查看>>
RHEL6基础四十八之RHEL文件服务器VSFTP日志文件
查看>>
高可用高性能负载均衡软件HAproxy详解指南-第二章(配置文件、关键字、ACL)...
查看>>
CIDR的特殊性
查看>>
《我的歌声里》程序员版
查看>>
秀一秀我的微软MVP(最有价值专家)的大礼包和水晶奖杯!
查看>>
各个web服务器的性能对比测试
查看>>
基于VMware vSphere 5.0的服务器虚拟化实践(7)
查看>>