nodejs基础知识点
nodejs
配置
- 在根目录创建node_cache和node_global文件夹
- 创建系统变量
- 新建一个NODE_HOME变量
- 然后path中创建三个变量
%NODE_HOME% %NODE_HOME%\node_global %NODE_HOME%\node_cache
自定义npm的配置信息
npm config get registry
查看现在用的什么源:
npm --registry https://registry.npmmirror.com install express
作为临时使用修改npm源(不会影响到本地配置)
我们要自己修改npm的缓存,全局安装路径和仓库源
- 自定义全局安装路径
npm config set prefix "D:\Nodejs\node-v20.17.0\node_global" - 自定义缓存路径
npm config set cache "D:\Nodejs\node-v20.17.0\node_cache" - 设置远程仓库
npm config set registry https://registry.npmmirror.com - 查看npm配置信息
npm config ls
模块调用的几种方式
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对象