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种

  1. 符合CommonJs规范

    CommonJs规范是用require导入,exports/moudle.exports导出

  2. 符合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() 返回检索内容第一次出现的位置索引

最新文章

  1. js中的 || 与 && 运算符 的使用
  2. 关于Fragment你所需知道的一切!
  3. Linux命令学习总结:reboot命令
  4. UIKit框架之UIEvent
  5. HDU-2159FATE(二维完全背包)
  6. CLEAR REFRESH FEEE的区别
  7. 通过sftp实现文件分发功能
  8. HOWTO: Create native-looking iPhone/iPad applications from HTML, CSS and JavaScript
  9. Boost库实现线程池学习及线程实现的异步调用
  10. 三种实现PHP伪静态页面的方法(转)
  11. js 进阶笔记
  12. java读取配置文件的几种方法
  13. vs2008试用版的评估期已经结束解决办法
  14. node express安装
  15. Windows 自动化补丁管理
  16. 构建eureka-server异常ClassNotFoundException: org.springframework.boot.context.embedded.FilterRegistrationBean
  17. 采集并分析Nginx访问日志
  18. 9.10Django模板
  19. pods报错修复方法
  20. Qt5设置应用程序图标

热门文章

  1. [编程基础] C++多线程入门3-小心地将参数传递给线程
  2. 用Java写一个PDF,Word文件转换工具
  3. JavaFx 页面和控件设置快捷键
  4. 如何在 Nuxt 3 中使用 wavesurfer.js
  5. Mac上离线安装rvm
  6. sync/atomic 原子操作使用与解析
  7. 淘宝首页数据采集之js采集
  8. myatbis的一个好的封装
  9. [​DuckDB] 多核算子并行的源码解析
  10. JAVA虚拟机-01-JAVA虚拟机家族简介