【node.js】03-http模块

目录

一、什么是http模块

二、创建基本的WEB服务器

三、req请求对象

四、res响应对象

五、根据不同的url响应不同的JSON内容


一、什么是http模块

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

二、创建基本的WEB服务器

步骤:

  1. 导入http 模块

  2. 创建 web 服务器实例

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

  4. 启动服务器

代码:

javascript 复制代码
//1. 导入http模块
const http = require('http')

//2. 创建web服务器实例
const server = http.createServer()

//3. 为服务器实例绑定 request 事件,监听客户端的请求
server.on('request', function(req, res) {
	console.log('Someone visit our web server.')
})

//4. 启动服务器
server.listen(80, function() {
	console.log('Server running at http://127.0.0.1:80')
})

三、req请求对象

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

javascript 复制代码
const http = require('http')
const server = http.createServer()

//req是请求对象,包含了与客户端相关的数据和属性
server.on('request', req => {
	const url = req.url //客户端请求的URL地址
	const method = req.method //客户端的请求类型
	console.log(`Your request url is ${url}, and request method is ${method}`)
})

server.listen(80, () => {
	console.log('Server running at http://127.0.0.1:80')
})

此时运行代码,然后用postman发一个post请求:

可以看到服务端打印信息如下:

四、res响应对象

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

当使用res.end()向客户端发送中文的时候回出现中文乱码问题,这时候需要设置中文编码格式:

五、根据不同的url响应不同的JSON内容

步骤:

  1. 获取请求的 url 地址

  2. 设置默认的响应内容为 404 Not found

  3. 判断用户请求,响应不同的JSON

  4. 设置 Content-Type 响应头,防止中文乱码

  5. 使用 res.end()把内容响应给客户端

代码:

javascript 复制代码
const http = require('http')
const server = http.createServer()

server.on('request', (req, res) => {
	//1. 获取请求的URL地址
	const url = req.url

	//2. 设置默认的响应内容
	let content = '404 Not Found'

	//3.判断用户请求响应JSON
	if (url === '/') {
		content = { name: '小红', age: 18 }
	} else {
		content = { name: '小黑', age: 20 }
	}
	//4. 设置响应头
	res.setHeader('Content-Type', 'application/json')

	//5. 向客户端响应的JSON内容
	res.end(JSON.stringify(content))
})

server.listen(80, () => {
	console.log('Server running at http://127.0.0.1:80')
})
相关推荐
Double Point2 小时前
(三十三)Dart 中使用 Pub 包管理系统与 HTTP 请求教程
网络·网络协议·http
南通DXZ2 小时前
Win7下安装高版本node.js 16.3.0 以及webpack插件的构建
前端·webpack·node.js
你的人类朋友3 小时前
浅谈Object.prototype.hasOwnProperty.call(a, b)
javascript·后端·node.js
前端太佬3 小时前
暂时性死区(Temporal Dead Zone, TDZ)
前端·javascript·node.js
Mintopia3 小时前
Node.js 中 http.createServer API 详解
前端·javascript·node.js
你的人类朋友3 小时前
CommonJS模块化规范
javascript·后端·node.js
李少兄1 天前
Unirest:优雅的Java HTTP客户端库
java·开发语言·http
Mintopia1 天前
Node.js 中 fs.readFile API 的使用详解
前端·javascript·node.js
咖啡教室1 天前
nodejs开发后端服务详细学习笔记
后端·node.js
不爱吃鱼的猫-1 天前
Node.js 安装与配置全攻略:从入门到高效开发
服务器·node.js