Node.js之http模块

简介: Node.js之http模块

http模块是什么?

http 模块是 Node,js 官方提供的、用来创建 web 服务器的模块。通过 http 模块提供的 http.createServer() 方法,就能方便的把一台普通的电脑,变成一台Web 服务器,从而对外提供 Web 资源服务。

如果我们想在node.js当中使用http模块需要做什么?

我们需要导入http模块

const http = require("http")

使用http模块创建基础的web服务器

基本步骤

1.导http 模块

2.创建 web 服务器实例

3.为服务器实例绑定request 事件,监听客户端的请求

4.启动服务器

// 1.导http 模块
const http = require("http")
// 2.创建 web 服务器实例
const sever = http.createSever()
// 3.为服务器实例绑定request 事件,监听客户端的请求
// 使用on绑定事件有两个参数 绑定的事件 回调函数 第一个参数为request请求 第二个参数为response响应
sever.on("request",(request,response)=>{
    console.log(1)
})
// 4.启动服务器
// 第一个参数是端口号 第二个参数是回调函数
sever.listen("80",()=>{
    console.log(2)
})

我们在终端输出,先输出2

然后我们去浏览器输入127.0.0.1

事件监听到了输出1

req请求对象

只要服务器接收到了客户端的请求,就会调用通过 server.on() 为服务器绑定的 request 事件处理函数如果想在事件处理函数中,访问与客户端相关的数据或属性,可以使用如下的方式:

req.ur1 是客户端请求的 URL 地址

req.method 是客户端的 method 请求类型

const http = require("http")
const server = http.createServer()
server.on("request",function(req,res){
    // 请求之后打印结果
    console.log(req.url) //   打印/
    console.log(req.method) // GET
})
server.listen(80,()=>{
    console.log(1)
})

res响应对象

在服务器的 request 事件处理函数中,如果想访问与服务器相关的数据或属性,可以使用如下的方式:

const http = require("http")
const server = http.createServer()
server.on("request",function(req,res){
    const str = "我是向客户端响应的内容"
    // 向客户端发送指定的内容,并结束这次请求的处理过程
    res.end(str)
})
server.listen(80,()=>{
    console.log(1)
})

我们发现乱码了,我们该如何处理?

const http = require("http")
const server = http.createServer()
server.on("request",function(req,res){
    const str = "我是向客户端响应的内容"
    // 为了防止中文显示乱码的问题,需要设置响应头 Content-Type 的值为 text/html;  charset=utf-8
    res.setHeader("Content-Type","text/html;charset=utf-8")
    res.end(str)
})
server.listen(80,()=>{
    console.log(1)
})

感谢大家的阅读,如有不对的地方,可以向我提出,感谢大家!

相关文章
|
7天前
|
运维 网络安全 Python
使用Python http.server模块共享文件
今天给大家介绍一下Python标准库中的http.server模块。这个模块提供了一种简单的方式来快速启动一个HTTP服务器,非常适合临时共享文件、测试、教学等轻量级场景。
|
10天前
|
缓存 前端开发 JavaScript
React和Next.js开发常见的HTTP请求方法
React和Next.js开发常见的HTTP请求方法
15 0
|
12天前
|
JavaScript 前端开发
Angular.js 应用里如何发送 HTTP 请求
Angular.js 应用里如何发送 HTTP 请求
27 3
|
12天前
|
JSON JavaScript API
使用 Node.js 开发一个简单的 web 服务器响应 HTTP post 请求
使用 Node.js 开发一个简单的 web 服务器响应 HTTP post 请求
36 1
|
12天前
|
JSON JavaScript 中间件
使用 Node.js 开发一个简单的 web 服务器响应 HTTP get 请求
使用 Node.js 开发一个简单的 web 服务器响应 HTTP get 请求
12 2
|
Web App开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
TCP洪水攻击(SYN Flood)的诊断和处理 Posted by  海涛  on 2013 年 7 月 11 日 Tweet1 ​1. SYN Flood介绍 前段时间网站被攻击多次,其中最猛烈的就是TCP洪水攻击,即SYN Flood。
954 0
|
Web App开发 存储 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
      前段时间公司hadoop集群宕机,发现是namenode磁盘满了, 清理出部分空间后,重启集群时,重启失败。 又发现集群Secondary namenode 服务也恰恰坏掉,导致所有的操作log持续写入edits.new 文件,等集群宕机的时候文件大小已经达到了丧心病狂的70G+..重启集群报错 加载edits文件失败。
863 0
|
Web App开发 前端开发
|
SQL Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
     如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。
754 0
|
Web App开发 监控 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
一,事务的4个基本特征  Atomic(原子性): 事务中包含的操作被看做一个逻辑单元,这个逻辑单元中的操作要 么全部成功,要么全部失败。
869 0