三木社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 305|回复: 0
打印 上一主题 下一主题

类: http.ServerResponse

[复制链接]

1562

主题

1564

帖子

4904

积分

博士

Rank: 8Rank: 8

积分
4904
跳转到指定楼层
楼主
发表于 2017-8-9 12:26:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是一个由 HTTP 服务器(而不是用户)内部创建的对象。作为第二个参数传递给 'request'事件。
该响应实现了 Writable Stream 接口。这是一个包含下列事件的 EventEmitter
事件: 'close'
function () { }
在调用 response.end(),或准备 flush 前,底层连接结束。
事件: 'finish'
function () { }
发送完响应触发。响应头和响应体最后一段数据被剥离给操作系统后,通过网络来传输时被触发。这并不代表客户端已经收到数据。
这个事件之后,响应对象不会再触发任何事件。
response.writeContinue()
发送 HTTP/1.1 100 Continue 消息给客户端,表示请求体可以发送。可以在服务器上查看'checkContinue' 事件。
response.writeHead(statusCode[, statusMessage][, headers])
发送一个响应头给请求。状态码是 3 位数字,如 404。最后一个参数 headers 是响应头。建议第二个参数设置为可以看的懂的消息。
例如:
  1. var body = 'hello world';
  2. response.writeHead(200, {
  3.   'Content-Length': body.length,
  4.   'Content-Type': 'text/plain' });
复制代码
这个方法仅能在消息中调用一次,而且必须在 response.end() 前调用。
如果你在这之前调用 response.write()response.end(),将会计算出不稳定的头。
Content-Length 是字节数,而不是字符数。上面的例子 'hello world' 仅包含一个字节字符。如果 body 包含高级编码的字符, Buffer.byteLength() 就必须确定指定编码的字符数。Node 不会检查Content-Length 和 body 的长度是否相同。
response.setTimeout(msecs, callback)
  • msecs {Number}
  • callback {Function}
设置 socket 超时时间,单位为毫秒。如果提供了回调函数,将会在 response 对象的 'timeout' 事件上添加监听器。
如果没有给请求、响应、服务器添加 'timeout' 监视器,超时的时候将会销毁 socket。如果你给请求、响应、服务器加了处理函数,就需要负责处理 socket 超时。
response.statusCode
使用默认的 headers 时(没有显式的调用 response.writeHead() ),这个属性表示将要发送给客户端状态码。
例如:
  1. response.statusCode = 404;
复制代码
响应头发送给客户端的后,这个属性表示状态码已经发送。
response.statusMessage
使用默认 headers 时(没有显式的调用 response.writeHead() ), 这个属性表示将要发送给客户端状态信息。 如果这个没有定义,将会使用状态码的标准消息。
例如:
  1. response.statusMessage = 'Not found';
复制代码
当响应头发送给客户端的时候,这个属性表示状态消息已经发送。


回复

使用道具 举报

Archiver|手机版|小黑屋|三木电子社区 ( 辽ICP备11000133号-4 )

辽公网安备 21021702000620号

GMT+8, 2025-6-27 00:19 , Processed in 0.031294 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表