1. path 模块
如何去得知自己的当前位置和目标文件的位置,这是作为对本地文件进行操作的基础
Path模块引进的是一个对象, 内部有很多的属性方法
在使用前首先需要引入 path 模块 const path = require('path')
方法
__dirname:当前文件所在目录的名称( 绝对路径 )
__filename:当前文件所在的目录名称 + 文件名称( 绝对路径 )
const path = require('path')
console.log(__dirname) // F:\框架练习\node核心模块
console.log(__filename) // F:\框架练习\node核心模块\01-path模块.js
path.join(路径1, 路径2):连接路径。该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是”/“,Windows系统是”\“。
const path = require('path')
console.log(path.join(__dirname,src)) // F:\框架练习\node核心模块\src
path.resolve():方法用于将相对路径转为绝对路径。
它可以接受多个参数,依次表示所要进入的路径,直到将最后一个参数转为绝对路径。如果根据参数无法得到绝对路径,就以当前所在路径作为基准。除了根目录,该方法的返回值都不带尾部的斜杠。
const path = require('path')
console.log(path.join(__dirname,src,js,es6)) // F:\框架练习\node核心模块\src\js\es6
path.relative():接受两个参数,这两个参数都应该是绝对路径。该方法返回第二个路径相对于第一个路径的那个相对路径。
const path = require('path')
console.log(path.relative(__dirname, path.join(__dirname,'src','index.html'))) // src\index.html
path.parse() 返回路径各部分信息
const path = require('path')
console.log(path.parse(__dirname))
/*
{
root: 'F:\\',
dir: 'F:\\框架练习',
base: 'node核心模块',
ext: '',
name: 'node核心模块'
}
*/
2. URL 模块
url模块用于生成和解析URL。该模块使用前,必须加载。const url = require('url')
url 模块提供了两套 API 来处理 URL:一个是旧版本遗留的 API,一个是实现了 WHATWG标准的新 API。
旧api就是url.parse里面的部分
新api就是URL里面的部分
建议只使用新API const {URL} = require('url')
3. OS 模块
os模块提供与操作系统相关的方法。
当然 使用前要加载 const os = require('os')
const os = require('os')
console.log(os)
/**
*{
* arch: [Function: arch] {
* [Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
* },
* cpus: [Function: cpus],
* endianness: [Function: endianness] {
* [Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
* },
* freemem: [Function: getFreeMem] {
* [Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
* },
* getPriority: [Function: getPriority],
* homedir: [Function: hidden] {
* [Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
* },
* hostname: [Function: hidden] {
* [Symbol(Symbol.toPrimitive)]: [Function (anonymous)]
* },
* loadavg: [Function: loadavg],
* ...
* }
*/
方法
os.arch():返回计算机的架构
console.log(os.arch()) // x64
os.networkInterfaces():返回一个对象,包含只有赋予网络地址的网络接口
console.log(os.networkInterfaces())
/**
{
'VMware Network Adapter VMnet1': [
{
address: 'fe80::6525:971e:a582:fb2a',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '00:50:56:c0:00:01',
internal: false,
cidr: 'fe80::6525:971e:a582:fb2a/64',
scopeid: 5
},
{
address: '192.168.111.1',
netmask: '255.255.255.0',
family: 'IPv4',
mac: '00:50:56:c0:00:01',
internal: false,
cidr: '192.168.111.1/24'
}
],
'VMware Network Adapter VMnet8': [
{
address: 'fe80::62:812a:cc69:de0b',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '00:50:56:c0:00:08',
internal: false,
cidr: 'fe80::62:812a:cc69:de0b/64',
scopeid: 2
},
{
address: '192.168.10.1',
netmask: '255.255.255.0',
family: 'IPv4',
mac: '00:50:56:c0:00:08',
internal: false,
cidr: '192.168.10.1/24'
}
],
WLAN: [
{
address: 'fe80::b1fd:63a6:69ad:13ab',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '68:ec:c5:5c:ae:4f',
internal: false,
cidr: 'fe80::b1fd:63a6:69ad:13ab/64',
scopeid: 21
},
{
address: '192.168.2.175',
netmask: '255.255.255.0',
family: 'IPv4',
mac: '68:ec:c5:5c:ae:4f',
internal: false,
cidr: '192.168.2.175/24'
}
]
}
*/
os.platform():返回一个字符串,指定node.js运行的环境
console.log(os.platform()) // win32
os.release():返回操作系统的版本号
console.log(os.release()) // 10.0.18362
os.cpus():返回CPU的内核信息
console.log(os.cpus())
/*
[
{
model: 'Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz',
speed: 2808,
times: {
user: 48698187,
nice: 0,
sys: 50797640,
idle: 794507562,
irq: 6138625
}
}
]
*/
os.freemem():以整数形式返回空闲的系统内存量
console.log(os.freemem() / 1024 / 1024 /1024) // 8.219837188720703