开发者学堂课程【Node.js 入门与实战:response对象常用成员(API)】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/588/detail/8267
response对象常用成员(API)
目录:
一、 response 对象
二、 实际代码举例
Response.write(chunk,[,encoding][,callback]) chunk 就是浏览器写入的数据,chunk 可以是 string 也可以是 burfer,encoding 就是编码浏览器写入书记之后可以指定一个编码,第三个参数就是写完这个数据回调一下。
一、response对象
response 对象类型
response 对象常用成员
response.writeHead(statusCode [, statusMessage][, headers])
‘
1. This method must only be called once on a message and it must be called before response.end( ) is called.
-这个方法在每次请求响应前都必须被调用(只能调用一次)。并且必须在 end()方法调用前调用
2. If you call response.wnite() or response.end() before calling this, the implicit/mutable headers will be calculatedand call this function for you.
-如果在调用 writeHead()方法之前调用了 write()或 end()方法,系统会自动帮你调用 writetead()方法,并且会生成默认的响应头
3.When headers have been set with response. setHeader(), they will be merged with any headers passed to response.writeHead( ),with the headers passed to response.writeHead( ) given precedence.
·如果通过 res.setHeader( )也设置了响应头,那么系统会将 serHleader()设置的响应头和 wniteHead()设置的响应头合并。并且 writeHead()的设置优先
二、实际代码举例
var http = require( ' http');
http.createServer(function (req, res){
// res.statusCode
= 404;
// res.statusMessage =‘Not Found';
// // 这句代码放在前面
// res.setHeader( ' Content-Type', 'text/plain; charset=utf-8 ');
// 通过 res.writeHead()来实现
// res.writeHead(404,'Not Found ', {
// 'Content-Type ' : 'text/plain; charset=utf-8'
// });
res.writeHead ( 200,’OK ' , {
'Content-Type' : 'text/plain; charset=utf-8'
});
// 1. res.write()
res.write( ' hello world !你好世界!!!');
res.write( ' hello world !你好世界!!! ');
res.write( ' hello world !你好世界!!! ');
// 2.每个请求都必须要调用的一个方法 res.end();
// 结束响应(请求)
该方法会通知服务器,所有响应头和响应主体都已被发送,即服务器将其视为已完成。每次响应都必须调用 esponse.end()方法。
这个并不是立刻结束响应,而是反应给服务器结束了,服务器在适当的时候结束请求,这一点也是很多编程语言里都有的情况。
Response.end里面的三个参数可以都不传,就是一个简简单单的请求,如果传了第一个数据表示这个数据,如果指定了data ,则相当于调用 response.write(data, encoding) 之后再调用 response. end(callback),所以说传数据然后给end一下,如果指定了 callback
, 则当响应流结束时被调用。
// 告诉服务器该响应的报文头、报文体等等全部已经响应完毕了,可以考虑本次响应结束。
3、// res.end()要响应数据的话,数据必须是 String 类型或者是 Buffer 类型
res.end();
// 4.通过 res.setHeader()来设置响应报文头
// res.setHeader()要放在 res.write()和 res.end( )之前设置
// 因为即便我们不设置响应报文头,系统也会默认有响应报文头,并且默认发送给浏览器,当已经发送过响应报文头后,就不能再通过 res.setHeader()来再次设置响应报文头了
// 否则就会报错
// res.setHeader( ' Content-Type', 'text/plain; charset=utf-8 ');
再次执行就显示正常,自己设置的报文头跟系统的并不冲突,服务器status默认值都是200
// 5.设置 http 响应状态码
// res.statusCode
设置http响应状态码
// res.statusMessage
设置http响应状态码对应的消息
// res.statusCode
= 404;
// res.statusMessage =‘Not Found';
响应状态码,在实际开发当中,也是非常常用的,服务器在用户请求资源,有不同的响应的时候,一定要根据响应状态码,客户端会根据状态码做出一定的响应。
// 6. res.writeHead(
直接向客户端响应(写入) http 响应报文头
// 建议在 res.write()和 res.end()之前调用
}).listen(9091,function ( ) {
console.log( ' http://localhost: 9091");});
运行结果跟之前依旧一致
运行结果: