http.get()
http.get(options[, callback])
http.get(url[, options][, callback])
由于大多数请求都是没有主体的 GET 请求,因此 Node.js 提供了这个便捷的方法。 这个方法与 http.request() 的唯一区别是它将方法设置为 GET 并自动调用 req.end()。 注意,如果没有添加 ‘response’ 事件处理函数,则响应将被完全丢弃。 如果添加了 ‘response’ 事件处理函数,则必须消费完响应对象中的数据,例如当有 ‘readable’ 事件时调用 response.read()、或添加 ‘data’ 事件处理函数、或通过调用 .resume() 方法。 在消费完数据之前,不会触发 ‘end’ 事件。 此外,在读取数据之前,它将占用内存,最终可能导致进程内存不足的错误。回调必须注意消费响应数据。
callback 调用时只有一个参数,该参数是 http.IncomingMessage 的实例。
箭头函数 =>
(x)=>x*x
等价于
function(x){
return x*x;
}
const ,var,let的区别
- const定义的变量不可修改,且必须初始化。
- var定义的变量可以修改,如果不初始化会输出undefined,不会报错。
- let是块级作用域,函数内部使用let定义后,对函数外部无影响。必须在声明后才能使用。
GET请求
var http = require('http');
http.get('http://www.baidu.com', (req, res) => {
//箭头匿名函数
//这里没有为'response'事件添加处理函数,响应会被抛弃
var html = '';
console.log('已发送请求');
//通过'data'事件处理函数,将每次请求获取的数据存入html
req.on('data', (data) => {
console.log('\n\n');
console.log('返回的数据是:');
console.log(data);
//这里返回的数据是buffer
html += data;
});
req.on('end', () => {
console.log('\n\n');
console.log('最后返回的整体数据是');
console.log(html);
})
})
使用http.get()获取网页数据
示例:http://www.runoob.com/nodejs/node-js-get-post.html
var http = require('http');
var option = {
hostname: 'www.runoob.com',
port: 80,
path: '/nodejs/node-js-get-post.html',
method: 'GET',
headers: { 'User-Agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}
};
http.get(option, (req, res) => {
//箭头匿名函数
//这里没有为'response'事件添加处理函数,响应会被抛弃
var html = '';
console.log('已发送请求');
//通过'data'事件处理函数,将每次请求获取的数据存入html
req.on('data', (data) => {
console.log('\n\n');
console.log('返回的数据是:');
console.log(data);
//这里返回的数据是buffer
html += data;
});
req.on('end', () => {
console.log('\n\n');
console.log('最后返回的整体数据是');
console.log(html);
})
})