一、http模块

  1. http.createSverver()
  • http是node自带的模块,通过require("http")的方法载入;

  • 使用http创建服务器:

 http.createServer(function(request,response){
response.writeHead(200,{"Content-Type":"text/plan"}); //设置返回头
response.write("this is test"); //返回的内容
response.end("end"); //响应结束
}).listen(2017); //设置端口

  2.http.get(options[,callback]):发送请求,获取收据,通常不发送请求数据,可用于写爬虫.

  • options通常是个url;callback是回掉函数。

http.get("http://www.baidu.com/",function(response){
response.on("data",function(data){
// do somethiing
});
response.on("end",function(){
//do something
});
}).on("error",function(error){
console.log(error.message);
})

  3.http.request(options[,callback]):发送请求,带请求数据,可用于灌水评论,伪装请求等操作

  • options:共11个参数,常用的有5个

hostname:请求的地址,可用于url.parse()方法得到,类似于 www.imooc.com这种写法,不带之后的路径;

port:端口;

path:以/开头,通常是hostname 后面跟的路径,例如 /course/docomment;

method:通常是POST;

headers:是一个object,可以使用事先正常请求途径获得的response header;

  • callback:回掉函数,可以打印出请求的结构代码res.statusCodeJSON.stringify(res.headers)请求头;

  • 最后需要将请求数据写道请求体里;最后收到结束请求;  

    var http = require("http");
    var querystring = require("querystring");
    var postData = querystring.stringify({
    //key:value
    });
    var options = {
    "hostname":"",
    "port":"",
    "path":"",
    "method":"",
    "headers":{}
    };
    var req = http.request(options,function(res){
    console.log("status:" +res.statusCode);
    console.log("headers:" +JSON.stringify(res.headers));
    res.on("data",function(chunk){
    //do something
    });
    res.on("end",function(){
    console.log("完成");
    })
    });
    req.on("error",function(e){
    console.log(e.message);
    })
    req.write(postData);
    req.end();

      

node基础(一)——http模块的更多相关文章

  1. node(基础三)_模块系统基础

      一.前言                                                                                         这篇文章主 ...

  2. Node基础篇(模块和NPM)

    核心模块 核心模块的意义 如果只是在服务器运行JavaScript代码,意义并不大,因为无法实现任何功能(读写文件,访问网络). Node 的用处在于它本身还提供的一系列功能模块,用于与操作系统互动. ...

  3. node基础04:模块调用

    1.模块调用 node遵循AMD规范 //server.js var http = require("http"); var Teacher = require("./t ...

  4. node基础篇二:模块、路由、全局变量课堂(持续)

    今天继续更新node基础篇,今天主要内容是模块.路由和全局变量. 模块这个概念,在很多语言中都有,现在模块开发已经成为了一种潮流,它能够帮助我们节省很多的时间,当然咱们的node自然也不能缺少,看下例 ...

  5. node.js的http模块的基础 学到的东西

    node.js的http模块的基础 学到的东西 其中客户端:我们在node.js中如果要请求服务端中的js或者其他脚本的话要使用http.request()方法他会返回http.ClientReque ...

  6. Node.js(window)基础(2)——node环境下的模块,模块间调用

    参考:http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450241959 ...

  7. node基础—模块系统

    模块的概念 为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块加载系统. 在 Node.js 中,文件和模块是一一对应的(每个文件被视为一个独立的模块),换言之,一个 Node ...

  8. node基础(二)_模块以及处理乱码问题

    一.前言 本次内容主要包括: 1.node.js中的模块系统 2.解决上篇中服务器响应的汉字乱码问题 二.知识 1.node中的模块   分为三种: 核心模块(node定义的如前面用到的fs,http ...

  9. Node.js入门:模块机制

    CommonJS规范      早在Netscape诞生不久后,JavaScript就一直在探索本地编程的路,Rhino是其代表产物.无奈那时服务端JavaScript走的路均是参考众多服务器端语言来 ...

随机推荐

  1. fineReport---sql

    一.开窗函数-逐层平均 在创建数据集时用sql的开窗排名函数[AVG(字段) over(PARTITION BY 分组字段 order by 逐层字段)]处理,然后进行直接调用. 详细说明 二.开窗函 ...

  2. Powershell实现Telnet Port

    Telnet Port 脚本 $servers = get-content D:\ps\ServerIPAddress.TXT $portToCheck = '80' for($i=1;$i -le ...

  3. Android REST webservice 类

    App与后台交互,后台使用的是Jersey RESTful 服务.在APP端使用Android 内部集成的HttpClient接口,无需引入第三方jar包, import org.apache.htt ...

  4. link options and how g++ is invoked gcc g++

    yum install gcc yum install gcc-c++ yum reinstall gcc gcc-c++ Downloading packages:(1/2): gcc-c++-4. ...

  5. 阻塞IO、非阻塞IO、同步IO、异步IO等

    https://www.cnblogs.com/zingp/p/6863170.html 阅读目录 1 基础知识回顾 2 I/O模式 3 事件驱动编程模型 4 select/poll/epoll的区别 ...

  6. Sending 'ccColor4B' (aka 'struct_ccColor4B') to parameter of incompatible type

    今天遇到了如下的一个错误, Sending 'ccColor4B' (aka 'struct_ccColor4B') to parameter of incompatible type CiColor ...

  7. QTimeLine 控制动画(一步一步的往前变化,并在每次变化时都会发出一个frameChanged信号)

    QTimeLine顾名思义表示一条时间线,即一个时间序列,该时间序列会按我们实现定义好的间隔一步一步的往前变化,并在每次变化时都会发出一个frameChanged()信号.所以,我们通常会使用该类来驱 ...

  8. django 多数据库时 ORM语句 选择数据库

    多数据库时ORM语句选择数据库 不需要save的操作: 查询(删除的话查询语句后面加一个.delete()即可,修改的话在后面加一个.update()即可): models.表名.objects.us ...

  9. Vue(5)- axios、vuex

    一.内容回顾 1.webpack(前端中工作,项目上线之前对整个前端项目优化) - entry:整个项目的程序入口(main.js或index.js): - output:输出的出口: - loade ...

  10. 收藏:几种开源许可证的区别!——By 阮一峰制作

    乌克兰程序员Paul Bagwell,画了一张分析图,下面是阮一峰制作的中文版,非常棒,绝对的好东西,收藏这张图供日后查看: