本文介绍: node.js学习笔记搬运,本文是基础 – Buffer部分

写在最前:跟着视频学习只是为了在新手期快速入门。想要学习全面、进阶的知识需要格外注重实战官方技术文档文档建议作为手册使用

系列文章

前言

Node.js不是浏览器环境浏览器环境使用DOMBOM将无法再使用

Node.js中使用axios

这里首先要纠正一个错误,因为我很久以前第一次学Node.js时候,是看得黑马的视频,他的视频教案里说Node.js可以使用axios这是错误的。

先区分AJAX、xhr、axios

说原因之前,首先要分清楚AJAXxhraxios这仨的关系。

Node.js不可以使用xhr,这是因为xhr是只在浏览器环境下提供的原生对象,不可以使用DOMBOM也是这个原因。但是想要完成网络请求的能力,http模块axios可以使用的,并且使用axios需要借助到http模块

node环境下使用axios的配置

创建时候多了一个配置项,其他和浏览器中的创建无异,核心步骤如下:

注意: HttpRequest是已经封装的axios,它在初始化时接受一个AxiosRequestConfig类型参数

// 看你需求用哪个
const https = require("https")
const axios = require("axios")

const agent = new https.Agent({
	rejectUnauthorized: false
})
// 假设你已经完成了对axios的封装,初始化时传入的参数类型是 AxiosRequestConfig
export const request = new HttpRequest({
	baseURL: '',
	timeout: 5 * 1000,
	httpsAgent: agent
})

现在就可以使用axiosnode里进行请求了

基础知识

1.1、Node.js中的顶级对象 —— global、globalThis

node中,顶级对象是global,相当于浏览器中的window。 在ES2020后,新增了globalThis,他和global等效

1.2、Buffer 缓冲区

一个类数组对象,用于表示固定长度的字节序列,它的本质是一段内存空间,专门存储二进制数据

优势:读写速度更快

1.2.1、创建Buffer

三种方式Buffer.allocBuffer.allocUnsafeBuffer.from

1、Buffer.alloc()

方法创建buffer每一个二进制位都会先归0

let buf = Buffer.alloc(10)  // 创建了一个长度为10的二进制字节序列: 00 00 00 00 00 00 00 00 00 00 00

2、Buffer.allocUnsafe()

这种方法创建的buffer可能会包含旧的内存数据,所以叫安全

let unsafeBuf = Buffer.allocUnsafe(10)  // 创建了一个长度为10的二进制字节序列, 但它可能包含之前没清除的数据

3、Buffer.from()

输入的数据转换二进制存入buffer

let toBeBuf = Buffer.from('hello node')  // toBeBuf 是'hello node'的二进制序列
1.2.2、Buffer操作

1、转String

buf.toString()

2、读写buffer的元素

类似数组方式读取

let buf = Buffer.from('hello node')
buf.forEach((b) => {
    console.log(b.toString())
})

buf[1].toString()

修改也是

buf[5] = 35

3、溢出

buffer二进制位能够存储的最大二进制是255(1111 1111),若超过这个数(比如0000 1111 1111)则发生溢出, Buffer的处理方法时舍弃高位数据。

示例: 0100 1111 1111 -> 1111 1111
// 舍弃了溢出部分 0100

原文地址:https://blog.csdn.net/liushi21/article/details/134673384

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_6069.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注