美文网首页
NodeJs基础学习--http模块(5)

NodeJs基础学习--http模块(5)

作者: WanggW | 来源:发表于2019-04-22 14:21 被阅读0次

概述

开发node的初衷,就是开发一个非阻塞IO功能、高性能web服务器,所以node的HTTP模块是核心中核心。

简易的node服务器搭建

var http = require('http');

http.createServer(function (request, response){
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.write("Hello World");
  response.end();
}).listen(3000, '127.0.0.1');

另一种写法

var http = require('http');

function onRequest(request,response){
    response.writeHead(200,{"Content-type":"text/plain"});
    response.write("hello wanggw");
    response.end();
}
http.createServer(onRequest).listen(3000, '127.0.0.1')
//var server = http.createServer([requestListener]) :创建并返回一个HTTP服务器对象

//server.listen(port, [hostname], [backlog], [callback]) :监听客户端连接请求,只有当调用了 listen 方法以后,服务器才开始工作
//port : 监听的端口
//hostname : 主机名(IP/域名),可选
//backlog : 连接等待队列的最大长度,可选
//callback : 调用listen方法并成功开启监听以后,会触发一个 listening事件,callback将作为该事件的执行函数,可选

//request 对象
//参数request对象是 http.IncomingMessage 的一个实例,通过它 ,我们可以获取到这次请求的一些信息,比如头信息,数据,url参数等等
//常见参数:
    //httpVersion: 使用的http协议的版本
    //headers : 请求头信息中的数据
    //url : 请求的地址
    //method : 请求方式




//response 对象
//向该次请求的客户端输出返回响应。

//response.writeHead(statusCode, [reasonPhrase], [headers]):向请求回复响应头
    //这个方法只能在当前请求中使用一次,并且必须在response.end()之前调用。
    //statusCode: 一个三位数的HTTP状态码, 例如 404
    //reasonPhrase:自行设置http响应状态码对应的原因短语
    //headers:响应头的内容

//write(chunk, [encoding]) : 发送一个数据块到响应正文中 ,如果这个方法被调用但是 response.writeHead() 没有被调用,
    //它将切换到默认header模式并更新默认的headers。chunk可以是字符串或者缓存。如果chunk 是一个字符串,
    //第二个参数表明如何将这个字符串编码为一个比特流。默认的 encoding是'utf8'。


//end([data], [encoding]): 当所有的正文和头信息发送完成以后,调用该方法告诉服务器数据已经全部发送完成了。
    //这个方法在每次完成信息发送以后必须调用,并且是最后调用,如果指定了参数 data , 
    //就相当于先调用 response.write(data, encoding) 之后再调用 response.end()


//setHeader(name, value) : 为默认或者已存在的头设置一条单独的头信息:如果这个头已经存在于 将被送出的头中,将会覆盖原来的内容。
    //如果设置更多的头, 就使用一个相同名字的字符串数组
    //如:response.setHeader("Set-Cookie", ["type=ninja", "language=javascript"]);

以上代码第一行var http = require("http")就是表示引入了node的http模块,然后调用createServer方法,创造一个node服务器实例。

createServer方法中传入函数会自动执行,所以也称为请求处理函数,实际上createServer构造函数返回的server对象是一个EventEmitter(事件触发与事件监听器功能的封装);

备注:在编写时每次修改代码都需要重启服务,可以通过supervisor模块解决问题。

//安装
npm install -g supervisor
//启动
supervisor server.js

相关文章

  • NodeJs基础学习--http模块(5)

    概述 开发node的初衷,就是开发一个非阻塞IO功能、高性能web服务器,所以node的HTTP模块是核心中核心。...

  • nodejs模块

    nodejs模块 nodejs系统自带的模块:http:协议请求模块;创建服务器:http.createServe...

  • NodeJS学习笔记——HTTP模块

    作为构建web服务器的核心模块,HTTP模块封装了很多底层的操作,让我们很方便的构建一个http服务器;下面看一个...

  • 简单整理介绍NodeJS提供的模块

    打开NodeJS中文官网,进行基础学习(http://nodejs.cn/api/child_process.ht...

  • nodejs学习-基础模块

    assert - 断言 assert 模块提供了一组断言函数,用于验证不变量。 一般服务器校验不使用断言,断言一旦...

  • 手写一个后端服务器

    一、nodejs写服务器 var http = require('http') //是nodejs的内置模块 - ...

  • nodejs复习大纲

    nodejs复习 模块http 服务 let http = require('http'); http.cre...

  • nodejs http模块

    创建一个模块 监听请求 启动http服务器监听连接 设置响应内容 获取请求体:监听request的data事件,c...

  • http模块

    学习nodejs从http模块开始 传统的http服务有Aphche、Nginx、IIS之类,下面有PHP、JSP...

  • 5.nodejs的http模块

    http请求流程 当用户在浏览器的地址栏输入地址以后会发生如下过程:web浏览器↔web服务器,浏览器请求服务器,...

网友评论

      本文标题:NodeJs基础学习--http模块(5)

      本文链接:https://www.haomeiwen.com/subject/swlcwqtx.html