Node中的setHeader和writeHead怎么用

今天小编给大家分享一下Node中的setHeader和writeHead怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

为龙岩等地区用户提供了全套网页设计制作服务,及龙岩网站建设行业解决方案。主营业务为成都网站建设、做网站、龙岩网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

Node中的setHeader和writeHead怎么用

setHeader

参数

response.setHeader(name, value)复制代码
  • name  属性

  • value  属性值

  • 返回 http.ServerResponse 返回响应对象

作用

为响应头部设置单个属性。

注意

  • 只能一个一个设置属性

  • 重复设置一个属性会替换之前的设置

  • 设置包含无效字符的属性字段名称或值将导致抛出 TypeError

示例

reponse.setHeader('Content-Type', 'text/html')
reponse.setHeader('Set-Cookie', ['type=ninja', 'language=javascript'])

重复设置一个属性

// 返回 content-type = text/html1
reponse.setHeader('Content-Type', 'text/html')
reponse.setHeader('Content-Type', 'text/html1')

Node中的setHeader和writeHead怎么用

writeHead

参数

response.writeHead(statusCode, [statusMessage], [headers])
  • statusCode  http状态码

  • statusMessage  状态信息(可选)

  • headers | 属性对象或数组(可选)

  • 返回 http.ServerResponse 返回响应对象

Node中的setHeader和writeHead怎么用

作用

setHeader作用相同

注意

  • 可以设置多个属性,setHeader只能设置一个

  • 只能调用一次

  • 必须在response.end()之前调用

  • 设置包含无效字符的属性字段名称或值将导致抛出 TypeError

示例

因为writeHead返回的是一个ServerResponse对象,我们可以进行链式调用

const body = 'hello world';
response
  .writeHead(200, {
    'Content-Length': Buffer.byteLength(body),
    'Content-Type': 'text/plain'
  })
  .end(body);

这里的Content-Length是以字节为单位,而不是字符。Buffer.byteLength()就是来确定正文的长度。

Nodejs不会检查Content-Length和已经传输的正文长度是否一致

同时使用setHeader和writeHead

// 返回 content-type = text/plain
const server = http.createServer((req, res) => {
  res.setHeader('Content-Type', 'text/html');
  res.setHeader('X-Foo', 'bar');
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('ok');
});

writeHead 的优先级比 setHeader 高,并且writeHead只能调用一次,所以在调用时,先考虑好哪些头不常改变后,再调用writeHead

如果已经调用了setHeader设置标头,那么他会传给writeHead合并

如果调用了此方法,且还没调用 response.setHeader()),则会直接将提供的标头值写入网络通道且内部不缓存。在标头上 response.getHeader()) 不会产生预期的结果。 如果需要逐步填充标头并在未来进行潜在的检索和修改,则改用 response.setHeader()

以上就是“Node中的setHeader和writeHead怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注创新互联行业资讯频道。


文章名称:Node中的setHeader和writeHead怎么用
路径分享:http://hbruida.cn/article/jhogph.html