核心模块

核心模块是Node中自带的模块,可以在node中直接使用

console.log(global)

os模块

const os = require("os");
const { filesize } = require("filesize");
function getSystemInfo() {
  console.log("当前系统版本:" + os.version());
  console.log("当前系统类型:" + os.type());
  console.log("机器名称: " + os.hostname());
  console.log("平台类型:" + os.platform());
  console.log("CPU: " + os.cpus()[0].model);
  console.log("本机ip: " + os.networkInterfaces().WLAN[4].address);
  console.log("系统已经上线:" + Math.round(os.uptime() / 60 / 60) + "小时");
  const totalMem = os.totalmem();
  const freeMem = os.freemem();
  console.log("剩余内存:" + filesize(freeMem, { unit: "GiB" }));
  console.log("总内存:" + filesize(totalMem, { unit: "GiB" }));
  // console.log(__dirname + " " + __filename); //获取当前文件目录+ 文件名
}
// exports.getSystemInfo = getSystemInfo;
module.exports = { getSystemInfo }; //导出为对象
// module.exports = getSystemInfo; //导出函数

Process

process模块用来表示和控制当前的node进程。

  • process.exit([code]) 结束进程
  • process.nextTick(callback[, …args]) 向tick任务队列中添加任务
console.log(111)
console.log(2222)
console.log(333)
process.exit(0)
console.log(444)

image-20230206161306520

Path和fs

Path

path 路径 | Node.js API 文档 (nodejs.cn)

path.resolve()

const path = require('path');
// path.resolve([...paths]) 用来生成一个绝对路径
//如果直接调用resolve,返回当前的工作目录
const result = path.resolve()
console.log(result)//D:\git\note\Front\webstorm

//如果将一个相对路径作为参数,resolve会自动把它转换为绝对路径
const result2 = path.resolve('./main.js')
console.log(result2) //D:\git\note\Front\webstorm\main.js

//一般会将一个绝对路径作为第一个参数,一个相对路径作为第二个参数,这样它会自动计算出最终的路径
const result3 = path.resolve(__dirname,'./main.js');
console.log(result3);//D:\git\note\Front\webstorm\main.js

path.extname(path)

const path = require('path');
extname =  path.extname('index.html')
console.log(extname); //.html

path.basename(path[, suffix])

path.basename() 方法返回 path 的最后一部分,类似于 Unix basename 命令。 尾随 目录分隔符 被忽略。

path.basename('/foo/bar/baz/asdf/quux.html');
// 返回: 'quux.html'

fs

fs 文件系统 | Node.js API 文档 (nodejs.cn)

readFile

同步方法

const fs = require("fs");
const path = require("path");
const buf = fs.readFileSync(path.resolve(__dirname,"index.html")) //同步的方法
console.log(buf.toString())

image-20230206165840615

异步方法

const fs = require("fs");
const path = require("path");
fs.readFile(path.resolve(__dirname,"index.html"),(err,buffer)=>{
    if(err){
        console.log("erro")
    }else {
        console.log(buffer.toString())
    }
})

writeFile

写入文件

const fs = require("fs");
const path = require("path");
//配置参数:
/*
* a :追加
* w :写入
* r :读取
* */

//同步
//创建: writeFile(文件名,写入内容,配置参数) 同步
str = "helloworld";
try {
    fs.writeFileSync(path.resolve(__dirname, "./hello.txt"), str, {flag: "w"});
    console.log(`写入 ${str} 成功`)
} catch (e) {
    return console.error(e);
}


//创建: writeFile(文件名,写入内容,配置参数,回调函数) 异步
//配置参数:
/*
* a :追加
* w :写入
* r :读取
* */
// 追加写入
str = "hellowrold!!!";
fs.writeFile(path.resolve(__dirname,"./hello.txt"),str,{flags:'w'},(err)=>{
    if(err){
        console.log(err);
    }else {}
    console.log("写入成功")
})

rename

重命名

const fs = require('fs');
const path = require('path');
//第一个参数是要修改的文件,第二个参数是要修改成什么文件名,最后一个是一个回调函数
fs.rename(path.resolve(__dirname,"./1.txt"),"hello.txt",(err)=>{
    if(err){
        console.log(err)
    }else {
        console.log("修改成功")
    }
})

删除文件

const fs = require('fs');
const path = require('path');
fs.unlink(path.resolve(__dirname,"./hello.txt"),(err)=>{
    if(err){
        return console.log(err);
    }else {
        console.log("删除成功")
    }
})

appendFile

创建新文件或者在已有文件中追加数据

const fs = require('fs');
const path = require('path');
const data = "very googd"
fs.appendFile(path.resolve(__dirname,"hello.txt"),data,(err)=>{
    if(err){
        console.log(err)
    }else {
        console.log("添加成功")
    }
})

mkdir

创建目录

const fs = require('fs');
const path = require('path');
fs.mkdir("./create",(err)=>{
    if(err){
        console.log(err);
        return;
    }else {
        console.log("目录生成成功")
    }
});

上面代码会在当前目录创建create目录

rmdir

const fs = require('fs');
const path = require('path');
fs.rmdir("./create",(err)=>{
    if(err){
        console.log(err);
        return;
    }else {
        console.log("目录生成成功")
    }
});

上面代码会在当前目录下删除create目录

copyFile

const fs = require('fs');
const path = require('path');
//复制一个文件
fs.copyFile("./resources/back.jpg","./copied.jpg",(err)=>{
    if(err){
        console.log(err)
    }else {
        console.log("wrong")
    }
})

这个会把resources目录下的back.jpg复制到当前目录下

package.json

package.json详解

package.json版本号命名规范

语义化版本控制规范