nodejs基础知识点
nodejs
模块调用的几种方式
nodejs 模块分三大类 自定义模块,第三方模块,核心模块
核心模块是用nodejs自带的模块组件,比如fs path http url buffer等
直接加载 const fs = require("fs") 或者 const fs = require("node:fs")
第三方模块 就是npm install 模块名 -g
全局安装后进行调用使用
const jsdom = require("jsdom")
自定义nodejs加载模块方式分2种
符合CommonJs规范
CommonJs规范是用require导入,exports/moudle.exports导出
符合ESM规范
ESM规范是用import导入,export/export default导出,
同时js后缀名要用
.mjs
或者package.json中type值修改为module
一般习惯使用这种,用在js当前路径使用
npm init -y
生成packjson文件,添加"type":"module"
,然后文件后缀改回js
系统模块
path
let path = require("path");
pth = "d:/test/abc/a.txt";
console.log(path.parse(pth));
pth3 = {
root: 'e:/',
dir: 'd:/test/abc',
base: 'a.txt',
ext: '.txt',
name: 'abc'
};
console.log(path.resolve(path.format(pth3)));
//主要讲2个方法parse和format, 2者是互斥,parse可以把一个路径拆分成root,dir,base,ext,name等属性
//format 可以把root,dir,base,ext,name等属性 拼接成一个完整路径. 其中root和dir是以dir优先,base和ext name是以base优先,这里的优先可以理解为互斥,2者都有只取优先的那个
//resolve和relative分别是获取绝对路径和相对路径,resolve如果传的是字符串而不是路径还可以根据当前脚本运行的路径去进行拼接 比如path.resolve("a","b","c.txt") 结果是D:\coding\PyCharm 2018.2.4\test\nodejs\demo1\a\b\c.txt
buffer模块
buffer是用来缓存二进制的数据的.是在内存中的一个缓存区
导入方式const {Buffer} = require("buffer")
Buffer是一个全局变量,因此不导入也可以直接使用
比如console.log(Buffer.alloc(7,15))
console.log(Buffer.alloc(10,"你好"));
alloc方法
alloc 两个参数 第一个参数是指定buffer长度, 参数2是指定值填充buffer,16进制.
Buffer.alloc(10,"你好") 以中文举例,一个中文占3个位,因此指定的长度大于需要的位数.这种情况会重复把6位的中文进行占位.填满
而指定位数少于需要的位数,则会截取相应的位数作为存放长度.
from方法
Buffer.from("你好的就挨打")
可以自动指定对应的buffer长度,并用16进制显示,from不能单独接受数字,如果是数字需要用数组进行输入, from只能接受一个参数,参数必须是字符串,数组,buffer对象
fill() 用指定值对buffer进行填充 3个参数 要填充的值 下标索引位置, 决定从哪个位置开始填充 下标索引位置, 决定从填充到哪个位置
write() 将指定值写入到buffer中 3个参数 要填充的值 下标索引位置, 决定从哪个位置开始填充 决定填充长度
toString() 用buffer解析成字符串 3个参数 使用的字符编码 开始解码的字符偏移量
subarray() 从原buffer截取一段返回新的buffer 2个参数 开始截取的位置 到哪个位置结束
indexOf() 返回检索内容第一次出现的位置索引
最新文章
- js中的 || 与 &;&; 运算符 的使用
- 关于Fragment你所需知道的一切!
- Linux命令学习总结:reboot命令
- UIKit框架之UIEvent
- HDU-2159FATE(二维完全背包)
- CLEAR REFRESH FEEE的区别
- 通过sftp实现文件分发功能
- HOWTO: Create native-looking iPhone/iPad applications from HTML, CSS and JavaScript
- Boost库实现线程池学习及线程实现的异步调用
- 三种实现PHP伪静态页面的方法(转)
- js 进阶笔记
- java读取配置文件的几种方法
- vs2008试用版的评估期已经结束解决办法
- node express安装
- Windows 自动化补丁管理
- 构建eureka-server异常ClassNotFoundException: org.springframework.boot.context.embedded.FilterRegistrationBean
- 采集并分析Nginx访问日志
- 9.10Django模板
- pods报错修复方法
- Qt5设置应用程序图标